Corso LabView - prima parte

Page 1


LabVIEW Corso Base I

Corso sulla versione software 6.0 Edizione Ottobre 2000 Part Number 320628H-01 Traduzione Gennaio 2001

A Survey of Modern Computer-Based Experiments Copyright © Copyright 2000 National Instruments Corporation. Tutti i diritti riservati. In base alle leggi sul copyright questa pubblicazione non può essere riprodotta o trasmessa in alcuna forma elettronica o meccanica, inclusa la fotocopia, la registrazione, la memorizzazione in banche dati, o tradotta, completamente o parzialmente, senza il consenso preventivo della National Instruments Corporation. I prodotti e i nomi delle società elencati sono marchi o nomi commerciali registrati delle rispettive società. Marchi DAQCard™, HiQ™, LabVIEW™, National Instrument™ , NI-488.2™, ni.com™, NI-DAQ™, PXI™, e SCXI™ sono marchi registrati di National Instruments Corporation. I prodotti o le società citate sono marchi registrati o marchi delle rispettive società.


Indice

Worldwide Technical Support and Product Information ni.com National Instruments Corporate Headquarters 11500 North Mopac Expressway Austin, Texas 78759-3504 USA Tel: 512 794 0100

Worldwide Offices Australia 03 9879 5166, Austria 0662 45 79 90 0, Belgium 02 757 00 20, Brazil 011 284 5011, Canada (Calgary) 403 274 9391, Canada (Ontario) 905 785 0085, Canada (QuĂŠbec) 514 694 8521, China 0755 3904939, Denmark 45 76 26 00, Finland 09 725 725 11, France 01 48 14 24 24, Germany 089 741 31 30, Greece 30 1 42 96 427, Hong Kong 2645 3186, India 91805275406, Israel 03 6120092, Italy 02 413091, Japan 03 5472 2970, Korea 02 596 7456, Mexico (D.F.) 5 280 7625, Mexico (Monterrey) 8 357 7695, Netherlands 0348 433466, New Zealand 09 914 0488, Norway 32 27 73 00, Poland 0 22 528 94 06, Portugal 351 1 726 9011, Singapore 2265886, Spain 91 640 0085, Sweden 08 587 895 00, Switzerland 056 200 51 51, Taiwan 02 2528 7227, United Kingdom 01635 523545

LabVIEW Corso Base I

ii

ď›™ National Instruments Corporation


Indice

Indice Guida per lo studente A. Descrizione di questo manuale ...................................................................... GS-1 B. Prerequisiti ..................................................................................................... GS-3 C. Installazione del software per il corso ........................................................... GS-4 D. Obiettivi del corso.......................................................................................... GS-5 E. Tavola d’orientamento ................................................................................... GS-6 F. Convenzioni adottate nel corso ...................................................................... GS-7

Lezione 1 Introduzione a LabVIEW A. LabVIEW....................................................................................................... 1-2 B. Strumenti virtuali ........................................................................................... 1-3 C. L’ambiente di LabVIEW ............................................................................... 1-6 D. L’Help e i manuali di LabVIEW ................................................................... 1-18 Sommario, trucchi e consigli .............................................................................. 1-24

Lezione 2 Creazione, modifica e verifica di un VI A. Creazione di un VI......................................................................................... 2-2 B. Tecniche di modifica...................................................................................... 2-11 C. Tecniche di verifica........................................................................................ 2-20 Sommario, trucchi e consigli .............................................................................. 1-25 Esercizi aggiuntivi .............................................................................................. 1-29

Lezione 3 Creazione di un SubVI A. SubVI............................................................................................................. 3-2 B. Icona e riquadro dei connettori ...................................................................... 3-3 C. Utilizzo di SubVI ........................................................................................... 3-10 D. Creazione di un subVI da sezioni di un VI.................................................... 3-17 Sommario, trucchi e consigli .............................................................................. 3-18 Esercizi aggiuntivi .............................................................................................. 3-19

 National Instruments Corporation

iii

LabVIEW Corso Base I


Indice

Lezione 4 Cicli e grafici A. Cicli While..................................................................................................... 4-2 B. Grafici (Waveform Chart).............................................................................. 4-4 C. Registri a scorrimento .................................................................................... 4-17 D. Cicli For ......................................................................................................... 4-26 Sommario, trucchi e consigli .............................................................................. 4-29 Esercizi aggiuntivi .............................................................................................. 4-30

Lezione 5 Matrici, grafici e cluster A. Matrici............................................................................................................ 5-2 B. Autoindicizzazione ........................................................................................ 5-4 C. Funzioni delle matrici .................................................................................... 5-6 D. Polimorfismo ................................................................................................. 5-8 E. Grafici di forme d’onda(Waveform Graph) e grafici XY .............................. 5-11 F. Cluster ............................................................................................................ 5-25 G. Funzioni che operano sui cluster ................................................................... 5-28 Sommario, trucchi e consigli .............................................................................. 5-36 Esercizi aggiuntivi .............................................................................................. 5-38

Lezione 6 Strutture Case e Sequence A. Strutture Case................................................................................................. 6-2 B. Strutture Sequence ......................................................................................... 6-9 C. Formula ed Expression node.......................................................................... 6-12 D. Come evitare di abusare delle strutture Sequence ......................................... 6-15 Sommario, trucchi e consigli .............................................................................. 6-17 Esercizi aggiuntivi .............................................................................................. 6-18

Lezione 7 Stringhe e I/O di file A. Stringhe.......................................................................................................... 7-2 B. Funzioni di stringa ......................................................................................... 7-3 C. VI e funzioni per I/O di file ........................................................................... 7-8 D. Formattazione di stringhe per fogli elettronici .............................................. 7-16 E. VI ad alto livello per l’I/O di file ................................................................... 7-20 Sommario, trucchi e consigli .............................................................................. 7-27 Esercizi aggiuntivi .............................................................................................. 7-28

Lezione 8 Acquisizione dati e forme d’onda A. Panoramica e configurazione......................................................................... 8-2 B. Organizzazione dei VI Data Acquisition ....................................................... 8-15 C. Acquisizione di un singolo ingresso analogico.............................................. 8-17 D. Wizard per le DAQ........................................................................................ 8-21 E. Ingresso analogico di una forma d’onda ........................................................ 8-24

LabVIEW Corso Base I

iv

 National Instruments Corporation


Indice

F. Scrittura su file dei dati relativi a forme d’onda............................................. 8-28 G. Scansione di diversi canali d’ingresso analogici ........................................... 8-30 H. Uscita analogica............................................................................................. 8-34 I. Ingressi e uscite digitali................................................................................... 8-37 J. DAQ con buffer (opzionale) ........................................................................... 8-39 Sommario, trucchi e consigli .............................................................................. 8-44 Esercizi aggiuntivi .............................................................................................. 8-45

Lezione 9 Controllo della strumentazione A. Panoramica sul controllo della strumentazione ............................................. 9-2 B. Comunicazione tramite GPIB e configurazione ............................................ 9-3 C. Comunicazione con gli strumenti .................................................................. 9-9 D. Utilizzo dei VI driver degli strumenti............................................................ 9-12 E. VISA .............................................................................................................. 9-18 F. Utilizzo dei VI e delle funzioni VISA............................................................ 9-20 G. Comunicazione su porta seriale ..................................................................... 9-24 H. Trasferimento di forme d’onda...................................................................... 9-33 Sommario, trucchi e consigli .............................................................................. 9-40 Esercizi aggiuntivi .............................................................................................. 9-41

Lezione 10 Personalizzazione dei VI A. Configurazione dell’aspetto dei pannelli frontali .......................................... 10-2 B. Apertura dei pannelli frontali dei subVI con VI in esecuzione .................... 10-5 C. Tasti rapidi per i controlli .............................................................................. 10-9 D. Modifica delle proprietà dei VI (opzionale) .................................................. 10-13 E. Personalizzazione delle palette Controls e Functions (opzionale)................. 10-16 Sommario, trucchi e consigli .............................................................................. 10-19

Appendice A. Informazioni aggiuntive................................................................................. A-1 B. Tabella delle corrispondenze dei caratteri ASCII .......................................... A-4 C. Note per il docente ......................................................................................... A-7

 National Instruments Corporation

v

LabVIEW Corso Base I



Guida per lo studente Grazie per aver acquistato il kit del Corso Base di LabVIEW. Voi potrete iniziare a sviluppare un’applicazione subito dopo aver completato gli esercizi di questo manuale. Questo manuale e il software di accompagnamento vengono utilizzati nel Corso Base di LabVIEW a carattere pratico della durata di tre giorni. Voi potete utilizzare l’acquisto di questo kit per iscrivervi al corso senza versare la corrispondente quota di registrazione se vi registrate entro 90 giorni dall’acquisto del kit. Visitate la sezione Customer Education del sito ni.com per i programmi dei corsi online, i prospetti, i centri di formazione, e la registrazione di classi.

A. Descrizione di questo manuale Questo manuale vi insegna ad utilizzare LabVIEW per sviluppare applicazioni di test e misure, di acquisizione dati, di controllo degli strumenti, di memorizzazione dati, di analisi delle misure e di generazione di rapporti. Questo manuale presuppone che abbiate familiarità con Windows, Macintosh o Unix e che abbiate esperienza nella scrittura di algoritmi sotto forma di diagrammi di flusso o di schemi a blocchi. Il manuale è suddiviso in lezioni, ognuna delle quali copre un argomento o un insieme di argomenti. Ogni lezione consiste in: Ÿ

Un’introduzione che descrive lo scopo della lezione e che cosa imparerete

Ÿ

Una descrizione degli argomenti trattati nella lezione

Ÿ

Un insieme di esercizi per fissare gli argomenti

Ÿ

Un insieme di esercizi aggiuntivi per approfondimenti se il tempo lo consente

Ÿ

Un sommario che sottolinea concetti importanti e le conoscenze impartite nella lezione

 National Instruments Corporation

GS-1

LabVIEW Corso Base I


Guida per lo studente

Diversi esercizi presenti in questo manuale utilizzano i seguenti prodotti hardware della National Instruments: Ÿ

Un dispositivo plug-in multifunzione per l’acquisizione dati (DAQ) collegato ad un DAQ Signal Accessory contenente un sensore di temperatura, un generatore di funzioni e dei LED

Ÿ

Un’interfaccia GPIB collegata ad un simulatore di strumenti della National Instruments

Se non possedete questo hardware, potete completare comunque la maggior parte degli esercizi. Assicuratevi di utilizzare le versioni demo dei VI quando lavorate con gli esercizi. Gli esercizi che richiedono esplicitamente dell’hardware sono contrassegnati con l’icona mostrata a lato. Potete anche utilizzare altro hardware rispetto a quello indicato precedentemente. Per esempio potete utilizzare uno strumento GPIB al posto di un simulatore di strumenti della NI, o un altro dispositivo DAQ della National Instruments collegato ad una sorgente di segnale, come ad esempio un generatore di funzioni. Ogni esercizio mostra una figura con un pannello frontale finito e lo schema a blocchi dopo che avete mandato in esecuzione il VI, come mostrato nell’illustrazione seguente. Dopo ogni schema a blocchi segue una descrizione di ogni oggetto presente nello schema a blocchi.

1 Pannello frontale

LabVIEW Corso Base I

2 Schema a blocchi

GS-2

3 Commenti (questi non li inserite)

 National Instruments Corporation


Guida per lo studente

Prerequisiti Prima di utilizzare questo manuale, assicuratevi di avere i seguenti: q

(Windows) Windows 95 o successivi installato sul vostro computer; (Macintosh) Power Macintosh con sistema operativo MacOS 7.6.1 o successivi; (UNIX) workstation Sun con Solaris 2.5 o successivi e

software di sistema XWindows, una workstation modello HP 9000 serie 700 HP-UX con 10.20 o successivi o un PC con Linux kernel 2.0.x o successivi per architetture Intel x86. q

(Windows) Dispositivo DAQ multifunzione configurato come Board ID 1 utilizzando Measurement & Automation Explorer; (Macintosh)

Dispositivo DAQ multifunzione nello Slot 1 q

DAQ Signal Accessory, conduttori e cavi

q

(Windows e Unix) interfaccia GPIB; (Macintosh) interfaccia GPIB nello

Slot 2 q

NI Instrument Simulator e alimentazione

q

LabView Full o Professional Development System 6.0 o successivi

q

Un cavo seriale

q

Un cavo GPIB

q

(Opzionale) Un’applicazione per word processing come (Windows) Notepad, WordPad, (Macintosh) TeachText, (UNIX) Text Editor, vi o vuepad

q

I dischetti del Corso Base di LabVIEW, contenenti i seguenti file:

Nome file Disco 1

Descrizione

LV Basics I

Directory per il salvataggio dei VI creati durante il corso e per effettuare altri esercizi Libreria di VI contenente subVI utilizzati durante il corso File zip contenente il driver di LabVIEW per il Simulatore di strumenti NI

basics1.llb nidevsim.zip

Disco 2 bas1soln.exe

 National Instruments Corporation

Archivio che si apre da sé contenente le soluzioni di tutti gli esercizi del corso

GS-3

LabVIEW Corso Base I


Guida per lo studente

Nota

Gli esercizi che utilizzano il VI Thermometer usano il VI Thermometer (demo) delle soluzioni. Il VI Thermometer (demo) si trova in basics1.llb.

C. Installazione del software per il corso Seguite i passi seguenti per installare il software di LabVIEW Corso Base.

Windows 1. Copiate il file basics.llb dal disco 1 del corso nella directory labview\user.lib. Dopo aver avviato LabVIEW, il contenuto di questa directory si trova nella palette Functions»User Libraries. 2. Estraete il contenuto del file nidevsim.zip nella directory labview\instr.lib. Dopo aver avviato LabVIEW, il driver per strumenti NIDevSim si trova nella palette Functions»Instrument I/O»Instrument Drivers. 3. Copiate la directory LV Basics I nella directory c:\exercises. 4. (Opzionale) Cliccate due volte su bas1soln.exe per installare le soluzioni di tutti gli esercizi nella directory c:\solutions\LV Basics I.

Macintosh 1. Copiate il file basics.llb dal disco 1 del corso nella cartella user.lib della directory labview. Dopo aver avviato LabVIEW, il contenuto di questa directory si trova nella palette Functions»User Libraries. 2. Su un computer con Windows estraete il contenuto del file nidevsim.zip nella directory labview:instr.lib. Dopo aver avviato LabVIEW, il driver per strumenti NIDevSim si trova nella palette Functions»Instrument I/O»Instrument Drivers. 3. Copiate la directory LV Basics I nella cartella exercises. 4. (Opzionale) Su un computer con Windows estraete il contenuto di bas1soln.exe e copiatelo sul vostro hard disk in una cartella opportuna per installare le soluzioni di tutti gli esercizi.

UNIX 1. Effettuate il login come superuser. 2. Assicuratevi che i dischetti del corso non siano protetti da scrittura. 3. Inserite il disco 1 del corso e copiate il file basics.llb nella directory /labview/user.lib. Dopo aver avviato LabVIEW, il contenuto di questa directory si trova nella palette Functions»User Libraries.

LabVIEW Corso Base I

GS-4

 National Instruments Corporation


Guida per lo studente

4. Su un computer con Windows estraete il contenuto del file nidevsim.zip. Copiatelo nella directory /labview/instrlib. Dopo aver avviato LabVIEW, il driver per strumenti NIDevSim si trova nella palette Functions»Instrument I/O»Instrument Drivers. 5. Copiate la directory LV Basics I nella directory /exercises. 6. (Opzionale) Su un computer con Windows estraete il contenuto di bas1soln.exe e copiatelo sul vostro hard disk in una cartella opportuna per installare le soluzioni di tutti gli esercizi. 7. Dopo aver copiato i file, utilizzate il comando chown per cambiare il proprietario di ogni file da root a current user.

D. Obiettivi del corso Il corso vi fornisce una preparazione che vi consente di: Ÿ

Utilizzare LabVIEW per creare applicazioni.

Ÿ

Utilizzare varie tecniche di verifica del software.

Ÿ

Comprendere pannelli frontali, schemi a blocchi, icone e connettori.

Ÿ

Utilizzare VI interni e funzioni.

Ÿ

Creare e salvare VI in modo tale da utilizzarli come subVI.

Ÿ

Creare applicazioni che utilizzano la porta seriale e strumenti GPIB.

Ÿ

Creare applicazioni che usano dispositivi DAQ plug-in.

Questo corso non vi fornisce le descrizioni seguenti: Ÿ

Teoria della programmazione

Ÿ

Ogni VI interno, funzione o oggetto

Ÿ

Il funzionamento del bus GPIB

Ÿ

Il funzionamento della porta seriale

Ÿ

La teoria sulla conversione analogico-digitale (A/D)

Ÿ

Lo sviluppo di un driver per strumenti

Ÿ

Lo sviluppo di un’applicazione completa per ogni studente della classe.

 National Instruments Corporation

GS-5

LabVIEW Corso Base I


Guida per lo studente

E. Tavola d’orientamento Introduzione a LabVIEW

Creazione, modifica e verifica di un VI

Creazione di un subVI

Cicli e grafici

Vettori, grafici e cluster

Strutture Case e Sequence

Stringhe e I/O di file

Acquisizione dati e forme d’onda

Controllo della strumentazione

Personalizzazione dei VI

LabVIEW Corso Base I

GS-6

 National Instruments Corporation


Guida per lo studente

F. Convenzioni adottate nel corso Nel manuale del corso vengono adottate le convenzioni seguenti: »

Il simbolo » vi guida attraverso i menu nidificati e le opzioni delle finestre di dialogo fino all’azione finale. La sequenza File»Page Setup»Options vi indica che dovete partire dal menu File, scegliere la voce Page Setup e quindi scegliere Options dall’ultima finestra di dialogo. Questa icona indica un suggerimento, e vi consiglia di leggere una nota informativa. Questa icona indica una nota, e vi avverte di leggere una informazione importante. Questa icona indica attenzione, e vi avverte di prendere le dovute precauzioni per evitare danni fisici, perdita dati o crash di sistema. Questa icona vi indica che l’esercitazione richiede un’interfaccia GPIB plug-in o un dispositivo DAQ.

bold

Il testo in grassetto vi indica le voci che voi dovete selezionare o su cui cliccare del software, come le voci di menu e le opzioni della finestra di dialogo. Il testo in grassetto indica anche nomi di parametro, controlli e pulsanti del pannello frontale, finestre di dialogo, sezioni di finestre di dialogo, nomi di menu e nomi di palette.

italic

Il testo in corsivo indica variabili, enfasi, un riferimento incrociato o un’introduzione ad un concetto chiave. Questo font indica anche del testo che dovete introdurre o un valore che dovete applicare.

courier

Il testo in questo font indica testo o caratteri che dovete inserire da tastiera, sezioni di codice, esempi di programmazione, ed esempi di sintassi. Questo font viene usato anche per nomi propri di drive di dischi, percorsi, directory, sottoprogrammi, nomi di dispositivi, funzioni, operazioni, variabili, nomi file ed estensioni, parti di codice.

courier bold

Il testo in grassetto di questo font indica i messaggi e le risposte che il computer stampa automaticamente sullo schermo. Questo font enfatizza anche linee di codice che sono differenti da altri esempi.

courier italic

Il testo in corsivo di questo font indica del testo che dovete introdurre o un valore che dovete fornire.

Arial narrow

Il testo in questo font indica una piattaforma specifica e indica che il testo seguente si applica solo a quella piattaforma.

Click tasto destro

(Macintosh) Premere <Command> e cliccare per ottenere la stessa azione

di un click col tasto destro del mouse.

 National Instruments Corporation

GS-7

LabVIEW Corso Base I



Lezione 1 Introduzione a LabVIEW Questa lezione vi introduce alle nozioni di base su LabVIEW. Fate riferimento a LabVIEW Quick Reference Card per partire rapidamente con LabVIEW. Questa scheda descrive le generalità sulle tecniche di modifica, di collegamento e di verifica e le palette di LabVIEW. Elenca inoltre le combinazioni rapide di tasti più comuni e le risorse su LabVIEW presenti sul Web. Per visualizzare la versione PDF di questa scheda, selezionate Help»View Printed Manuals. Alla voce che appare LabVIEW Library PDF, premete il tasto <Page Down> e cliccate sul collegamento LabVIEW Quick Reference Card.

Imparerete: A. A conoscere LabVIEW B. A sapere che cos’è uno strumento virtuale (VI) C. A conoscere l’ambiente di LabVIEW, comprese le finestre, i menu e gli strumenti D. Ad utilizzare l’Help di LabVIEW e i manuali

 National Instruments Corporation

1-1

LabVIEW Corso Base I


Lezione 1

Introduzione a LabVIEW

A. LabVIEW LabVIEW è un linguaggio di programmazione grafica che utilizza icone invece di linee di testo per creare applicazioni. In contrasto con i linguaggi di programmazione testuali, in cui le istruzioni determinano l’esecuzione del programma, LabVIEW utilizza la programmazione basata sul flusso di dati, in cui è il flusso dei dati a determinare l’esecuzione. In LabVIEW realizzate un’interfaccia utente utilizzando un insieme di strumenti e di oggetti. L’interfaccia utente è nota come pannello frontale. Voi aggiungete codice utilizzando la rappresentazione grafica delle funzioni per controllare gli oggetti del pannello frontale. Lo schema a blocchi contiene questo codice. Lo schema a blocchi assomiglia in una certa misura ad un diagramma di flusso. LabVIEW è completamente integrato per la comunicazione con l’hardware tipo GPIB, VXI, PXI, RS-232, RS-485 e dispositivi DAQ plug-in. LabVIEW possiede anche caratteristiche interne per il collegamento della vostra applicazione al Web utilizzando LabVIEW Web Server e il software standard come il protocollo TCP/IP e ActiveX. Utilizzando LabVIEW potete creare applicazioni di test e misura, di acquisizione dati, di controllo degli strumenti, di memorizzazione dati, di analisi delle misure e di generazione di rapporti. Potete anche creare eseguibili a sé stanti e librerie condivise, come le DLL, perché LabVIEW è un vero compilatore a 32 bit.

LabVIEW Corso Base I

1-2

 National Instruments Corporation


Lezione 1

Introduzione a LabVIEW

B. Strumenti virtuali I programmi realizzati in LabVIEW vengono chiamati strumenti virtuali (Virtual Instruments, VI). I VI contengono tre componenti principali – il pannello frontale, lo schema a blocchi e l’icona con il riquadro connettori. Il pannello frontale è l’interfaccia utente del VI. L’esempio seguente mostra un pannello frontale.

Voi realizzate il pannello frontale con controlli e indicatori, che costituiscono i terminali interattivi d’ingresso e di uscita, rispettivamente. I controlli sono potenziometri, pulsanti, quadranti e altri dispositivi d’ingresso. Gli indicatori sono grafici, LED e altri visualizzatori. I controlli simulano dispositivi d’ingresso degli strumenti e forniscono dati allo schema a blocchi del VI. Gli indicatori simulano i dispositivi di uscita degli strumenti e visualizzano i dati che lo schema a blocchi acquisisce o genera. Dopo aver costruito il pannello frontale, aggiungete codice utilizzando le rappresentazioni grafiche delle funzioni per controllare gli oggetti del pannello frontale. Lo schema a blocchi contiene il codice sorgente in formato grafico. Gli oggetti del pannello frontale appaiono come terminali, mostrati a sinistra, sullo schema a blocchi. Non potete cancellare un terminale dallo schema a blocchi. Il terminale scompare solo dopo che avete cancellato l’oggetto corrispondente sul pannello frontale. Gli oggetti dello schema a blocchi comprendono terminali, subVI, funzioni, costanti, strutture e collegamenti che trasferiscono i dati fra gli altri oggetti dello schema a blocchi.

 National Instruments Corporation

1-3

LabVIEW Corso Base I


Lezione 1

Introduzione a LabVIEW

L’esempio seguente mostra uno schema a blocchi e il corrispondente pannello frontale.

Dopo aver costruito il pannello frontale e lo schema a blocchi, create l’icona e il riquadro dei connettori per poter utilizzare il VI all’interno di un altro VI. Un VI all’interno di un altro VI viene chiamato subVI. Un subVI corrisponde ad una subroutine nei linguaggi di programmazione testuali. Ogni VI visualizza un’icona, mostrata a sinistra, nell’angolo superiore destro delle finestre del pannello frontale e dello schema a blocchi. Un’icona è una rappresentazione grafica di un VI. Può contenere testo, immagini o una combinazione di entrambi. Se utilizzate un VI come subVI, l’icona identifica il subVI nello schema a blocchi del VI. Dovete costruire anche il riquadro dei connettori, mostrato a sinistra, per utilizzare il VI come subVI. Il riquadro dei connettori è un insieme di terminali che corrisponde ai controlli e indicatori di quel VI, analogamente all’elenco dei parametri di una chiamata di funzioni in linguaggi di programmazione testuali. Il riquadro dei connettori definisce gli ingressi e le uscite che potete collegare al VI in maniera tale da poterlo usare come subVI. Un riquadro dei connettori riceve dati ai suoi terminali d’ingresso e passa i dati al codice dello schema a blocchi attraverso i controlli del pannello frontale e riceve i risultati ai suoi terminali di uscita dagli indicatori del pannello frontale. La potenza di LabVIEW sta nella natura gerarchica del VI. Dopo aver creato un VI, potete utilizzarlo come subVI nello schema a blocchi di un VI ad alto livello. Non c’è limite al numero di livelli nella gerarchia. L’utilizzo di subVI vi aiuta a gestire modifiche e a verificare lo schema a blocchi rapidamente.

LabVIEW Corso Base I

1-4

 National Instruments Corporation


Lezione 1

Introduzione a LabVIEW

Quando create VI, potete accorgervi di ripetere una certa operazione frequentemente. Considerate allora l’utilizzo di subVI o di cicli per eseguire quell’operazione ripetute volte. Riferitevi alla lezione 4, Cicli e grafici, per maggiori informazioni sull’utilizzo dei cicli. Per esempio lo schema a blocchi seguente contiene due operazioni identiche.

Potete creare un subVI che esegue quell’operazione e richiamare il subVI due volte. Potete anche riutilizzare il subVI in altri VI. L’esempio seguente utilizza il VI Temperature come subVI nel suo schema a blocchi.

 National Instruments Corporation

1-5

LabVIEW Corso Base I


Lezione 1

Introduzione a LabVIEW

C. L’ambiente di LabVIEW Quando avviate LabVIEW, appare la seguente finestra di dialogo.

Descrizione delle azioni consentite dalla finestra di dialogo di LabVIEW: Ÿ

Cliccate sul pulsante New VI per creare un nuovo VI. Cliccate sulla freccia accanto al pulsante per creare un altro tipo di oggetto di LabVIEW, come un controllo.

Ÿ

Cliccate sul pulsante Open VI per aprire un VI esistente. Cliccate sulla freccia accanto al pulsante per aprire i file aperti di recente.

Ÿ

Cliccate sul pulsante DAQ Solutions per lanciare il DAQ Solution Wizard, che vi aiuta a trovare soluzioni per le comuni applicazioni DAQ.

Ÿ

Cliccate sul pulsante Search Examples per aprire un file di help che elenca e si collega a tutti i VI di esempio disponibili di LabVIEW.

Ÿ

Cliccate sul pulsante LabVIEW Tutorial per aprire l’interattivo LabVIEW Tutorial. Utilizzate questo tutorial per imparare i concetti fondamentali di LabVIEW.

Ÿ

Cliccate sul pulsante Exit per chiudere LabVIEW. (Macintosh) Cliccate sul pulsante Quit.

Ÿ

Utilizzate la sezione Quick Tip per saperne di più su LabVIEW. Cliccate sul pulsante Next per visualizzare ulteriori consigli.

Ÿ

Contrassegnate la casella Do not show this window when launching per disabilitare questa finestra di dialogo.

Finestre del Pannello frontale e dello Schema a blocchi Quando cliccate sul pulsante New VI, compare una finestra di pannello frontale senza titolo. La finestra visualizza il pannello frontale e costituisce una delle due finestre di LabVIEW che utilizzate per realizzare un VI. L’altra finestra contiene lo schema a blocchi. L’illustrazione seguente mostra una finestra di pannello frontale e la corrispondente finestra dello schema a blocchi.

LabVIEW Corso Base I

1-6

 National Instruments Corporation


Lezione 1

Introduzione a LabVIEW

9 1

2

2

3

10

2 11

4 12

13

5

14

6

15 7

16 17

8

1 Barra degli strumenti 2 Etichetta vincolata 3 Controllo numerico digitale 4 Etichetta libera

ď›™ National Instruments Corporation

5 Terminale del controllo numerico digitale 6 Terminale del potenziometro 7 Costante numerica 8 Funzione di moltiplicazione

9 Icona 10 Controllo del potenziometro 11 Legenda del grafico 12 Grafico XY 13 Percorso dei dati

1-7

14 Terminale del grafico XY 15 Funzione Bundle 16 SubVI 17 Struttura del ciclo For

LabVIEW Corso Base I


Lezione 1

Introduzione a LabVIEW

Barra degli strumenti del Pannello frontale Utilizzate i pulsanti della barra degli strumenti per mandare in esecuzione e modificare un VI. Sul pannello frontale compare la seguente barra degli strumenti.

Cliccate sul pulsante Run per avviare un VI. Mentre il VI è in esecuzione, il pulsante si modifica nel seguente, se il VI è un VI ad alto livello.

Il pulsante Run spesso appare spezzato, come mostrato a sinistra, quando create o modificate un VI. Questo pulsante indica che il VI è rotto e non può essere eseguito. Cliccate su questo pulsante per visualizzare la finestra Error List, che elenca tutti gli errori. Cliccate sul pulsante Run Continuously per mandare in esecuzione il VI finché non lo fermate o lo ponete in pausa. Potete anche cliccare nuovamente il pulsante per disabilitare l’esecuzione continuativa. Mentre il VI è in esecuzione, appare il pulsante Abort Execution. Cliccate su questo pulsante per fermare il VI immediatamente. Nota

Evitate di utilizzare il pulsante Abort Execution per fermare un VI. O lasciate il VI in esecuzione fino alla fine o studiate un metodo per fermarlo da programma. In questo modo il VI si trova in uno stato conosciuto. Per esempio, potete da programma fermare un VI utilizzando un interruttore sul pannello frontale. Cliccate sul pulsante Pause per mettere in pausa un VI che si trova in esecuzione. Quando cliccate sul pulsante Pause, LabVIEW evidenzia sullo schema a blocchi il punto in cui è stata arrestata l’esecuzione. Cliccate nuovamente sul pulsante per continuare con l’esecuzione del VI. Selezionate il menu a tendina Text Settings per modificare le impostazioni dei font del VI, comprese le dimensioni, lo stile e il colore. Selezionate il menu a tendina Align Objects per allineare gli oggetti ad un asse, ad esempio verticale, al bordo superiore, a sinistra e così via. Selezionate il menu a tendina Distribute Objects per distanziare gli oggetti uniformemente, ad esempio con intervalli, oppure avvicinandoli e così via. Selezionate il menu a tendina Reorder quando avete oggetti sovrapposti e volete definire quale si trova in primo piano o dietro ad un altro. Selezionate uno degli oggetti con lo strumento Posiziona e quindi scegliete Move Forward, Move Backward, Move To Front e Move To Back.

LabVIEW Corso Base I

1-8

 National Instruments Corporation


Lezione 1

Introduzione a LabVIEW

Barra degli strumenti dello Schema a blocchi Quando mandate in esecuzione un VI, appaiono dei pulsanti sulla barra strumenti dello schema a blocchi che potete utilizzare per verificare il VI. Sullo schema a blocchi compare la seguente barra degli strumenti.

Cliccate sul pulsante Highlight Execution per vedere il flusso dei dati attraverso lo schema a blocchi. Cliccate nuovamente sul pulsante per disabilitare l’esecuzione evidenziata. Cliccate sul pulsante Step Into per procedere un passo alla volta in un ciclo, in un subVI e così via. L’esecuzione passo-passo di un VI procede di nodo in nodo. Ogni nodo lampeggia per indicare che è pronto per l’esecuzione. Ponendovi nel nodo, siete pronti per l’esecuzione di un passo nel nodo. Cliccate sul pulsante Step Over per procedere passo-passo scavalcando un ciclo, un subVI e così via. Scavalcando il nodo, eseguite il nodo senza che avvenga l’esecuzione di ogni singolo passo nel nodo. Cliccate sul pulsante Step Out per uscire dalla modalità passo-passo di un ciclo, di un subVI e così via. Uscendo dal nodo in questa modalità, l’esecuzione del nodo viene completata e passate a quello successivo. Il pulsante Warning appare quando c’è un potenziale problema con lo schema a blocchi, ma non viene bloccata l’esecuzione del VI. Potete abilitare il pulsante Warning selezionando Tools»Options e quindi Debugging dal menu a tendina.

Menu rapidi Il menu più utilizzato è quello di tipo rapido. Tutti gli oggetti di LabVIEW e gli spazi vuoti sul pannello frontale e sullo schema a blocchi possiedono dei menu rapidi. Utilizzate le voci dei menu rapidi per modificare l’aspetto o il comportamento di oggetti del pannello frontale o dello schema a blocchi. Per accedere ai menu rapidi, cliccate con il pulsante destro del mouse sull’oggetto, sul pannello frontale o sullo schema a blocchi. (Macintosh) Premete il tasto <Command> e cliccate sull’oggetto, sul

pannello frontale o sullo schema a blocchi.

Menu I menu che si trovano nella parte superiore di una finestra di un VI contengono voci comuni ad altre applicazioni, come ad esempio Open, Save, Copy e Paste e altre specifiche di LabVIEW. Alcune voci di menu elencano anche combinazioni rapide di tasti. (Macintosh) I menu appaiono nella parte superiore dello schermo.

 National Instruments Corporation

1-9

LabVIEW Corso Base I


Lezione 1

Introduzione a LabVIEW

Nota Alcune voci di menu non sono disponibili quando un VI è in esecuzione. Ÿ

Utilizzate il menu File essenzialmente per aprire, chiudere, salvare e stampare VI.

Ÿ

Utilizzate il menu Edit per cercare e modificare componenti di un VI.

Ÿ

Utilizzate il menu Operate per lanciare, bloccare e modificare altre opzioni di esecuzione consentite per il VI.

Ÿ

Utilizzate il menu Tools per comunicare con gli strumenti e i dispositivi DAQ, per confrontare VI, per realizzare applicazioni, per abilitare il Web Server e per configurare LabVIEW.

Ÿ

Utilizzate il menu Browse per navigare nel VI e nella sua struttura gerarchica.

Ÿ

Utilizzate il menu Window per visualizzare le finestre e le palette di LabVIEW.

Ÿ

Utilizzate il menu Help per visualizzare informazioni sulle palette, i menu, gli strumenti, i VI e le funzioni, per visualizzare le istruzioni passo-passo sull’utilizzo delle caratteristiche di LabVIEW, per accedere ai manuali di LabVIEW e per visualizzare il numero della versione di LabVIEW e informazioni sulla memoria del computer.

Palette LabVIEW possiede palette grafiche mobili che vi aiutano a creare e ad avviare VI. Le tre palette sono Tools, Controls e Functions. Potete disporre queste palette dovunque sullo schermo.

Palette Tools Potete creare, modificare e verificare i VI utilizzando gli strumenti situati nella palette mobile Tools. La palette Tools è disponibile sul pannello frontale e sullo schema a blocchi. Uno strumento è una particolare modalità operativa del cursore del mouse. Quando selezionate uno strumento, l’icona del cursore si trasforma nell’icona dello strumento. Utilizzate gli strumenti per azionare e modificare gli oggetti del pannello frontale e dello schema a blocchi. Selezionate Window»Show Tools Palette per visualizzare la palette Tools. Potete disporre la palette Tools dovunque sullo schermo. Premete il tasto <Shift> e cliccate con il pulsante destro del mouse per visualizzare una versione temporanea della palette Tools nella posizione in cui si trova il cursore.

LabVIEW Corso Base I

1-10

 National Instruments Corporation


Lezione 1

Introduzione a LabVIEW

Per passare da uno strumento all’altro nella palette Tools, premete il tasto <Tab>. Per passare dallo strumento Posiziona a quello Collega e viceversa sullo schema a blocchi o da quello Posiziona a quello Modifica sul pannello frontale, premere la barra spaziatrice. Utilizzate lo strumento Modifica per modificare i valori di un controllo o per selezionare il testo all’interno di un controllo. Lo strumento Modifica cambia aspetto e appare come l’icona seguente quando si sposta su un controllo di testo, come un controllo digitale o di stringa.

Utilizzate lo strumento Posiziona per selezionare, muovere o ridimensionare oggetti. Lo strumento Posiziona cambia aspetto e appare come una delle icone seguenti quando si sposta in un angolo di un oggetto ridimensionabile.

Utilizzate lo strumento Testo per modificare il testo e creare etichette libere. Lo strumento Testo cambia aspetto e appare come l’icona seguente quando create etichette libere.

Utilizzate lo strumento Collega per collegare gli oggetti tra loro sullo schema a blocchi. Utilizzate lo strumento Menu rapido degli oggetti per accedere al menu rapido di un oggetto con il pulsante sinistro del mouse. Utilizzate lo strumento Scorrimento per far scorrere le finestre senza utilizzare le barre di scorrimento. Utilizzate lo strumento Punto d’interruzione per inserire dei punti d’interruzione nei VI, nelle funzioni, nei nodi, nei collegamenti e nelle strutture per mettere in pausa l’esecuzione in quel punto. Utilizzate lo strumento Sonda per inserire sonde sui collegamenti dello schema a blocchi. Utilizzate lo strumento Sonda per verificare valori intermedi in un VI che produce risultati dubbi o inattesi. Utilizzate lo strumento Copia colore per copiare i colori da inserire con lo strumento Colora. Utilizzate lo strumento Colora per colorare un oggetto. Esso visualizza anche le impostazioni correnti dei colori di primo piano e di sfondo.

Palette Controls e Functions Le palette Controls e Functions contengono delle subpalette di oggetti che potete utilizzare per creare un VI. Quando cliccate su un’icona di una

 National Instruments Corporation

1-11

LabVIEW Corso Base I


Lezione 1

Introduzione a LabVIEW

subpalette, l’intera palette si trasforma nella subpalette selezionata. Per utilizzare un oggetto delle palette, cliccate sull’oggetto e disponetelo sul pannello frontale o sullo schema a blocchi. Utilizzate i pulsanti di navigazione delle palette Controls e Functions per navigare e cercare tra i controlli, i VI e le funzioni. Potete anche cliccare col tasto destro del mouse su un’icona di un VI sulla palette e selezionare Open VI dal menu rapido per aprire il VI.

Palette Controls Utilizzate la palette Controls per posizionare controlli e indicatori sul pannello frontale. La palette Controls è disponibile solo sul pannello frontale. Selezionate Window»Show Controls Palette o cliccate col tasto destro del mouse sull’area operativa del pannello frontale per visualizzare la palette Controls. Potete anche visualizzare la palette Controls cliccando col tasto destro del mouse su un’area priva di oggetti del pannello frontale. Fissate la palette Controls cliccando sulla puntina situata nell’angolo superiore sinistro della palette.

Palette Functions Utilizzate la palette Functions per costruire lo schema a blocchi. La palette Functions è disponibile solo sullo schema a blocchi. Selezionate Window»Show Functions Palette o cliccate col tasto destro del mouse su un’area operativa dello schema a blocchi per visualizzare la palette Functions. Potete anche visualizzare la palette Functions cliccando col tasto destro del mouse su un’area priva di oggetti dello schema a blocchi. Fissate la palette Functions cliccando sulla puntina situata nell’angolo superiore sinistro della palette.

LabVIEW Corso Base I

1-12

 National Instruments Corporation


Lezione 1

Introduzione a LabVIEW

Questo corso utilizza i VI che si trovano nella palette Functions»User Libraries»Basic I Course, mostrata a sinistra.

Caricamento dei VI Voi potete caricare in memoria un VI selezionando File»Open. Compare la finestra di dialogo Choose the VI to open, e in tal modo potete navigare tra i VI che volete aprire. I VI che modificherete nel corso si trovano in c:\exercises\LV Basics I. Durante il caricamento del VI, potrebbe apparire la seguente finestra di dialogo.

Il campo Loading elenca i subVI del VI che vengono caricati in memoria. Number Loaded è il numero di subVI caricati in memoria fino a quel momento. Potete bloccare il caricamento in un qualsiasi istante cliccando sul pulsante Stop.

 National Instruments Corporation

1-13

LabVIEW Corso Base I


Lezione 1

Introduzione a LabVIEW

Se LabVIEW non riesce ad individuare immediatamente un subVI, inizia la ricerca in tutte le sottodirectory specificate nel VI Search Path, che potete modificare selezionando Tools»Options e quindi Paths dal menu a tendina superiore. Il campo Searching elenca le directory o i VI così come li cerca LabVIEW. Potete fare in modo che LabVIEW ignori un subVI cliccando sul pulsante Ignore subVI, oppure potete cliccare sul pulsante Browse per cercare il subVI mancante.

Salvataggio dei VI Selezionate Save, Save as, Save all o Save with Options dal menu File per salvare VI come file singoli o a gruppi di diversi VI salvandoli in una libreria di VI. I file libreria di VI terminano con l’estensione .llb. National Instruments vi consiglia di salvare i VI come file singoli, organizzati in directory, specialmente se diversi sviluppatori stanno lavorando sullo stesso progetto. LabVIEW utilizza finestre di dialogo native per i file sia in caricamento che in salvataggio. Potete disabilitare questa caratteristica selezionando Tools»Options e quindi Miscellaneous dal menu a tendina superiore.

Spostamento di VI tra piattaforme diverse Potete trasferire VI da una piattaforma ad un’altra, come da Macintosh a Windows. Labview traduce automaticamente e ricompila i VI sulla nuova piattaforma. Siccome i VI sono file, potete utilizzare un qualsiasi metodo o utility di trasferimento per spostare i VI tra piattaforme diverse. Potete trasferire VI in rete tramite protocolli FTP, Z o Xmodem, o metodi simili. Tali trasferimenti via rete eliminano il bisogno di software aggiuntivo per la traduzione dei file. Se utilizzate supporti magnetici per il trasferimento di VI, come ad esempio floppy disk o hard drive rimovibili esterni, avete bisogno di un programma generico di utility per il trasferimento dei file, come ad esempio: Ÿ

(Windows) MacDisk e TransferPro trasformano file Macintosh in

formato PC e viceversa. Ÿ

(Macintosh) Dos Mounter, MacLink e Apple File Exchange convertono

file per PC in formato Macintosh e viceversa. Ÿ

(Sun) PC File System (PCFS) converte file per PC in formato per Sun e viceversa.

Ÿ

(HP-UX) Il comando doscp supporta dischetti per PC e ne copia i file.

Nota

Alcuni VI caratteristici del sistema operativo non sono trasportabili tra piattaforme, come i VI DDE (Dynamic Data Exchange), ActiveX e AppleEvents.

LabVIEW Corso Base I

1-14

 National Instruments Corporation


Lezione 1

Esercitazione 1-1

Introduzione a LabVIEW

VI Frequency Response

Obiettivo: Aprire ed eseguire un VI

1. Selezionate Start»Programs»National Instruments»LabVIEW 6»LabVIEW per avviare LabVIEW. Compare la finestra di dialogo di LabVIEW. 2. Cliccate sul pulsante Search Examples. Il file di help che compare elenca e collega a tutti i VI esempio di LabVIEW disponibili. 3. Cliccate su Demonstrations, Instrument I/O e quindi su Frequency Response. Compare il pannello frontale del VI Frequency Response. Nota Potete anche aprire il VI cliccando sul pulsante Open VI e arrivare a labview\examples\apps\freqresp.llb\Frequency Response.vi.

Pannello frontale 4. Cliccate sul pulsante Run, mostrato a sinistra, della barra degli strumenti per avviare questo VI. Questo VI simula l’invio di un segnale di eccitazione ad un dispositivo sotto test (Unit Under Test, UUT) e quindi ne legge la risposta. La curva di risposta in frequenza risultante viene visualizzata sul grafico del pannello frontale, come mostrato nell’illustrazione seguente.

5. Utilizzate lo strumento Modifica, mostrato a sinistra, per modificare il valore del potenziometro Amplitude. Cliccate sul segno presente sul potenziometro e portatelo nella posizione desiderata, oppure utilizzate le freccette per aumentare o diminuire i valori sul controllo digitale o disponete il cursore sul display digitale e immettete un numero. Se immettete un numero nel display digitale, compare sulla barra degli strumenti il pulsante Enter, mostrato a sinistra. Il numero non viene passato al VI fino a quando non cliccate su questo pulsante o premete il tasto <Enter>.

 National Instruments Corporation

1-15

LabVIEW Corso Base I


Lezione 1

Introduzione a LabVIEW

(Macintosh e Sun) Premete il tasto <Return>.

6. Cliccate sul pulsante Run per avviare nuovamente il VI. Provate a regolare gli altri controlli sul pannello e ad avviare il VI per vedere quali cambiamenti si presentano.

Schema a blocchi 7. Selezionate Windows»Show Diagram o premete i tasti <Ctrl-E> per visualizzare lo schema a blocchi seguente per il VI Frequency Response. (Macintosh) Premete i tasti <Command-E>. (Sun) Premete i tasti <MetaE>. (HP-UX e Linux) Premete i tasti <Alt-E>.

Questo schema a blocchi contiene diversi elementi fondamentali di uno schema a blocchi, compresi i subVI, le funzioni e le strutture che imparerete a conoscere più avanti nel corso. 8. Utilizzate lo strumento Modifica per cliccare due volte sulla seguente icona del DMM.

Questa icona è un subVI denominato Demo Fluke 8840A. Dopo averci cliccato sopra due volte, si apre il seguente pannello frontale.

Questo pannello frontale è stato ideato per apparire come l’interfaccia utente di un multimetro. Ecco perché i programmi in LabVIEW vengono chiamati strumenti virtuali. Rendendo le applicazioni in

LabVIEW Corso Base I

1-16

 National Instruments Corporation


Lezione 1

Introduzione a LabVIEW

LabVIEW modulari, potete modificare solo parti dell’applicazione o riutilizzare quelle parti nella stessa applicazione o in altre. Per esempio questo subVI simula il comportamento di un multimetro della Fluke, ma potete modificare questo VI per controllare uno strumento. 9. Selezionate File»Close per chiudere il pannello frontale del VI Demo Fluke 8840A. 10. Non chiudete il VI Frequency Response, perché lo utilizzerete nell’esercitazione 1-2.

Fine dell’esercitazione 1-1

 National Instruments Corporation

1-17

LabVIEW Corso Base I


Lezione 1

Introduzione a LabVIEW

D. L’Help e i manuali di LabVIEW Utilizzate la finestra Context Help e il LabVIEW Help per avere un aiuto nella realizzazione e nella modifica dei VI. Fate riferimento a LabVIEW Help e ai manuali per ulteriori informazioni.

Finestra Context Help Per visualizzare la finestra Context Help, selezionate Help»Show Context Help o premete i tasti <Ctrl-H>. (Macintosh) Premete i tasti <Command-H>. (Sun) Premete i tasti <MetaH>. (HP-UX e Linux) Premete i tasti <Alt-H>.

Quando spostate il cursore sugli oggetti del pannello frontale e dello schema a blocchi, la finestra Context Help visualizza l’icona di subVI, funzioni, costanti, controlli e indicatori, con dei fili collegati a ciascun terminale. Quando spostate il cursore sulle opzioni della finestra di dialogo, la finestra Context Help visualizza le descrizioni delle opzioni. Nella finestra, i collegamenti richiesti sono in grassetto, i collegamenti raccomandati sono in testo normale e quelli opzionali sono opachi o non compaiono. Quello seguente è un esempio di finestra Context Help.

Cliccate sul pulsante Simple/Detailed Context Help situato nell’angolo inferiore sinistro della finestra Context Help per passare da un help semplice a uno dettagliato e viceversa. La modalità semplice mette in evidenza i collegamenti importanti. I terminali opzionali sono visualizzati da pezzi di filo, ad indicare che esistono altri collegamenti. Nella modalità dettagliata vengono visualizzati tutti i terminali, come mostrato nell’esempio seguente.

LabVIEW Corso Base I

1-18

 National Instruments Corporation


Lezione 1

Introduzione a LabVIEW

Cliccate sul pulsante Lock Context Help per bloccare il contenuto corrente della finestra Context Help. Quando il contenuto è bloccato, spostando il cursore su un altro oggetto non si modifica il contenuto della finestra. Per sbloccare la finestra, cliccate nuovamente sul pulsante. Potete anche accedere a questa opzione dal menu Help. Cliccate sul pulsante More Help per visualizzare l’argomento corrispondente nel LabVIEW Help, che descrive l’oggetto in dettaglio.

Help di LabVIEW Potete accedere al LabVIEW Help cliccando sul pulsante More Help nella finestra Context Help, selezionando Help»Contents and Index oppure cliccando sulla frase Click here for more help nella finestra Context Help. Il LabVIEW Help contiene descrizioni dettagliate della maggior parte delle palette, dei menu, degli strumenti, dei VI e delle funzioni. Il LabVIEW Help comprende anche istruzioni passo-passo per utilizzare le caratteristiche di LabVIEW e i collegamenti al LabVIEW Tutorial, esempi di VI, versioni PDF di tutti i manuali di LabVIEW e Application Notes, e supporto tecnico sul sito Web della National Instruments.

 National Instruments Corporation

1-19

LabVIEW Corso Base I


Lezione 1

Introduzione a LabVIEW

Esercitazione 1-2 Obiettivo:

Utilizzo dell’Help e dei manuali di LabVIEW

Utilizzare le caratteristiche dell’help di LabVIEW per informazioni su oggetti del pannello frontale e dello schema a blocchi e sulle relative caratteristiche

Parte A. Finestra Context Help 1. Il VI Frequency Response dovrebbe essere ancora aperto dall’esercitazione 1-1. Altrimenti, apritelo come descritto nell’esercitazione 1-1. 2. Selezionate Window»Show Diagram per visualizzare lo schema a blocchi. 3. Selezionate Help»Show Context Help o premete i tasti <Ctrl-H> per visualizzare la finestra Context Window. (Macintosh) Premete i tasti <Command-H>. (Sun) Premete i tasti <Meta-H>. (HP-UX e Linux) Premete i tasti <Alt-H>.

4. Visualizzate le informazioni sugli oggetti nella finestra Context Help muovendo il cursore su di essi. a. Spostate lo strumento Posiziona, mostrato a sinistra, sulla funzione Logarithm Base 10, che si trova sotto il titolo Bode Plot. Compare una descrizione della funzione nella finestra Context Help. b. Cliccate sul pulsante More Help, mostrato a sinistra, nella finestra Context Help per aprire l’argomento corrispondente nel LabVIEW Help. Potete anche cliccare su Click here for more help in basso nella finestra Context Help per aprire l’argomento corrispondente nel LabVIEW Help. Il LabVIEW Help contiene descrizioni dettagliate della maggior parte delle palette, dei menu, degli strumenti, dei VI e delle funzioni. Provate a visualizzare l’help per le altre funzioni. c. Spostate lo strumento Collega, mostrato a sinistra, sui terminali della funzione Logarithm Base 10. I terminali corrispondenti nella finestra Context Help lampeggiano quando si sposta su di essi lo strumento. d. Spostate lo strumento Collega su un filo. La finestra Context Help visualizza il tipo di dato del filo.

Parte B. Help di LabVIEW 5. Selezionate Help»Contents and Index per il LabVIEW Help. Il LabVIEW Help comprende anche istruzioni passo-passo per l’utilizzo delle caratteristiche di LabVIEW e i collegamenti al LabVIEW Tutorial, esempi di VI, versioni PDF di tutti i manuali di LabVIEW e Application Notes, e supporto tecnico sul sito Web della National Instruments.

LabVIEW Corso Base I

1-20

 National Instruments Corporation


Lezione 1

Introduzione a LabVIEW

6. Utilizzate l’indice del LabVIEW Help. a. Cliccate sul pulsante Index per visualizzare l’indice del LabVIEW Help. b. Digitate Frequency Response nella casella per l’immissione di testo. L’indice visualizza due risultati vicini. c. Cliccate su ogni voce immessa. LabVIEW Help visualizza l’argomento. d. Cliccate sul pulsante Contents per visualizzare la tabella con l’indice di LabVIEW Help, che vi mostra dove si trova l’argomento nel file di help. e. Cliccate nuovamente sul pulsante Index. f. Digitate GPIB Examples nella casella per l’immissione di testo, poiché il VI Frequency Response è una simulazione di applicazioni basate su GPIB. g. Cliccate su una voce dell’indice per visualizzare l’argomento che contiene un collegamento al VI Frequency Response. 7. Effettuate una ricerca su un testo con più parole nel LabVIEW Help. a. Cliccate sul pulsante Search. b. Digitate Frequency Response nella casella per l’immissione del testo. Nella casella di testo inferiore, cliccate sul risultato della ricerca GPIB Examples. Suggerimento Quando il pulsante Search è visibile, selezionate Search»Options

per impostare una ricerca su tutte le parole digitate. 8. Se sul vostro computer è installato Adobe Acrobat Reader, cliccate sul pulsante Contents e aprite la versione PDF di LabVIEW User Manual in LabVIEW Help. a. Cliccate su Related Documentation nella parte superiore della pagina che compare cliccando su Contents. Compare l’argomento Related Documentation. b. Cliccate sul collegamento LabVIEW User Manual per aprire la versione PDF del manuale nella finestra LabVIEW Help. c. Cliccate sul pulsante Help Topics (Guida in linea) sulla barra degli strumenti per nascondere il contenuto di Contents nella finestra LabVIEW Help. d. Cliccate nuovamente sul pulsante Help Topics per visualizzare il contenuto di Contents. e. Cliccate sul pulante Back (Precedente) per ritornare all’argomento Related Documentation. 9. Se il vostro computer è collegato ad Internet, accedete alle risorse del supporto tecnico del sito Web della National Instruments.

 National Instruments Corporation

1-21

LabVIEW Corso Base I


Lezione 1

Introduzione a LabVIEW

a. Individuate il libro Technical Support Resources in fondo alla finestra di Contents. b. Cliccate sul libro per espanderlo e cliccate sulla pagina Technical Support Resources. Compare l’argomento Technical Support Resources. c. Cliccate sul collegamento Technical Support per aprire la sezione Technical Support di ni.com nella finestra LabVIEW Help. Suggerimento Cliccate sul collegamento Open this page in your browser nella

parte alta dell’argomento Technical Support Resources per aprire un sito Web nel vostro navigatore. d. Cliccate sul pulsante Back della barra degli strumenti per ritornare all’argomento Technical Support Resources. e. Cliccate sul collegamento NI Developer Zone per aprire la National Instruments Developer Zone. f. Digitate Frequency Response nella casella di immissione del testo e cliccate su GO. I diversi argomenti che compaiono forniscono soluzioni sull’uso di diversi prodotti della National Instruments. g. Cliccate sul pulsante Back della barra degli strumenti e ritornate all’argomento Technical Support Resources.

Parte C. Libreria PDF di LabVIEW 10. Se sul vostro computer è installato Adobe Acrobat Reader, selezionate Help»View Printed Manuals per visualizzare la Libreria PDF di LabVIEW. Potete utilizzare questo PDF per cercare versioni PDF di tutti i manuali e le Application Notes di LabVIEW. 11. Cliccate sul collegamento Search (la presenza o meno di questo collegamento dipende dalla versione di Acrobat Reader installata) nella Libreria PDF di LabVIEW. Compare la finestra di dialogo Adobe Acrobat Search. 12. Digitate Frequency Response nella casella di immissione del testo e cliccate sul pulsante Search. La Libreria PDF di LabVIEW cerca in tutti i manuali e le Application Notes di LabVIEW e restituisce un elenco di risultati. 13. Cliccate due volte sul primo risultato della ricerca. La Libreria PDF di LabVIEW visualizza l’esatta posizione di Frequency Response in quel documento. 14. Selezionate Edit»Search»Results per visualizzare nuovamente i risultati della ricerca. 15. Esaminate gli altri risultati della ricerca e uscite da Acrobat Reader quando avete finito.

LabVIEW Corso Base I

1-22

 National Instruments Corporation


Lezione 1

Introduzione a LabVIEW

16. Sul pannello frontale selezionate File»Close per chiudere il VI Frequency Response. Non salvate le modifiche.

Fine dell’esercitazione 1-2

 National Instruments Corporation

1-23

LabVIEW Corso Base I


Lezione 1

Introduzione a LabVIEW

Sommario, trucchi e consigli Ÿ

Gli strumenti virtuali (VI) contengono tre componenti principali – il pannello frontale, lo schema a blocchi e l’icona con il riquadro connettori.

Ÿ

Il pannello frontale costituisce l’interfaccia utente di un VI, definisce gli ingressi e visualizza le uscite del VI.

Ÿ

Lo schema a blocchi contiene il codice sorgente grafico composto da nodi, terminali e collegamenti.

Ÿ

Utilizzate la palette Tools per creare, modificare e verificare i VI. Premete il tasto <Shift> e cliccate con il tasto destro del mouse per visualizzare una versione temporanea della palette Tools nella posizione in cui si trova il cursore.

Ÿ

Utilizzate la palette Controls per inserire controlli e indicatori sul pannello frontale. Cliccate con il tasto destro del mouse in un’area libera del pannello frontale per visualizzare la palette Controls.

Ÿ

Utilizzate la palette Functions per costruire lo schema a blocchi. Cliccate con il tasto destro del mouse in un’area libera dello schema a blocchi per visualizzare la palette Functions.

Ÿ

A tutti gli oggetti di LabVIEW e gli spazi vuoti sul pannello frontale e sullo schema a blocchi vengono associati dei menu rapidi, che appaiono cliccando con il tasto destro del mouse su un oggetto del pannello frontale o dello schema a blocchi. (Macintosh) Accedete ai menu rapidi premendo il tasto <Command>

quando cliccate su un oggetto del pannello frontale o dello schema a blocchi.

LabVIEW Corso Base I

Ÿ

Utilizzate il menu di Help per visualizzare la finestra Context Help e il LabVIEW Help, che descrive la maggior parte delle palette, dei menu, degli strumenti, dei VI e delle funzioni e comprende istruzioni passo-passo per l’utilizzo delle caratteristiche di LabVIEW.

Ÿ

Selezionate Help»View Printed Manuals per visualizzare la Libreria PDF di LabVIEW, che potete utilizzare per cercare le versioni PDF di tutti i manuali e le Application Notes di LabVIEW.

1-24

 National Instruments Corporation


Lezione 1

Introduzione a LabVIEW

Note

ď›™ National Instruments Corporation

1-25

LabVIEW Corso Base I



Lezione 2 Creazione, modifica e verifica di un VI Questa lezione vi introduce alle nozioni di base sulla creazione di VI.

Imparerete: E. A creare VI F. Le tecniche di modifica G. Le tecniche di verifica

ď›™ National Instruments Corporation

2-1

LabVIEW Corso Base I


Lezione 2

Creazione, modifica e verifica di un VI

A. Creazione di un VI I VI contengono tre componenti principali – il pannello frontale, lo schema a blocchi e l’icona con il riquadro connettori. Fate riferimento alla Lezione 3, Creazione di un subVI, per ulteriori informazioni sull’icona e il riquadro connettori.

Pannello frontale Voi costruite il pannello frontale con controlli e indicatori, che costituiscono i terminali interattivi di ingresso e uscita, rispettivamente, del VI. I controlli sono potenziometri, pulsanti, quadranti e altri dispositivi d’ingresso. Gli indicatori sono grafici, LED e altri display. I controlli simulano i dispositivi d’ingresso degli strumenti e forniscono dati allo schema a blocchi del VI. Gli indicatori simulano i dispositivi di uscita degli strumenti e visualizzano i dati che lo schema a blocchi acquisisce o genera. Utilizzate la palette Controls per inserire controlli e indicatori sul pannello frontale. La palette Controls è disponibile solo sul pannello frontale. Selezionate Window»Show Control Palette o cliccate con il tasto destro del mouse sull’area di lavoro per visualizzare la palette Controls.

Controlli e indicatori numerici I due oggetti numerici usati più di frequente sono il controllo digitale e l’indicatore digitale, come mostrato nella figura seguente.

2

1

3

1

Pulsanti incrementali 2 Controllo digitale a freccette

3 Indicatore digitale

Per immettere o modificare i valori in un controllo digitale, potete cliccare sui pulsanti incrementali a freccette con lo strumento Modifica o cliccare due volte sul numero con lo strumento Testo o quello Modifica, digitando un nuovo numero e premendo il tasto <Enter>. (Macintosh e Sun) Premete il tasto <Return>.

Controlli e indicatori booleani Utilizzate i controlli e gli indicatori booleani per immettere e visualizzare valori di tipo booleano (TRUE o FALSE). Gli oggetti booleani simulano

LabVIEW Corso Base I

2-2

 National Instruments Corporation


Lezione 2

Creazione, modifica e verifica di un VI

interruttori, pulsanti e LED. Gli oggetti booleani più comuni sono l’interruttore verticale e il LED circolare, come mostrato nella figura seguente.

Configurazione dei controlli e degli indicatori Potete configurare quasi tutti i controlli e gli indicatori utilizzando i rispettivi menu rapidi. Per accedere ai menu rapidi di un controllo o di un indicatore, cliccate con il tasto destro del mouse sull’oggetto. Per esempio, per configurare un’etichetta cliccate con il tasto destro del mouse sull’etichetta. Per configurare un display digitale, cliccate con il tasto destro del mouse sul display digitale.

Schema a blocchi Lo schema a blocchi si compone di nodi, terminali e collegamenti, come mostrato nella figura seguente.

1

2

4 3

1 Nodi

2 Terminali indicatori

3 Fili

4 Terminali di controllo

Nodi I nodi sono oggetti dello schema a blocchi che possiedono ingressi e/o uscite ed eseguono operazioni quando un VI è in esecuzione. Sono simili alle dichiarazioni, agli operatori, alle funzioni e alle subroutine dei linguaggi di programmazione testuali. I tipi di nodo comprendono le funzioni, i subVI e le strutture. Le funzioni sono elementi in esecuzione internamente, paragonabili con un operatore, una funzione o una dichiarazione. I subVI sono VI utilizzati nello schema a blocchi di un altro VI, paragonabili con le subroutine. Le strutture sono elementi di controllo del processo, come le struttere Sequence, Case, i cicli For o i

 National Instruments Corporation

2-3

LabVIEW Corso Base I


Lezione 2

Creazione, modifica e verifica di un VI

cicli While. I nodi Add e Subtract dello schema a blocchi precedente sono nodi funzione.

Terminali Gli oggetti del pannello frontale appaiono come terminali nello schema a blocchi. I terminali rappresentano il tipo di dato del controllo o dell’indicatore. Per esempio, un terminale DBL, mostrato a sinistra, rappresenta un controllo o un indicatore numerico a doppia precisione e virgola mobile. I terminali sono porte di ingresso e di uscita che scambiano informazioni tra il pannello frontale e lo schema a blocchi. I terminali sono analoghi ai parametri e alle costanti nei linguaggi di programmazione testuali. Tra i vari tipi di terminali vi sono terminali di controllo e indicatori e terminali di nodo. I terminali di controllo e indicatori appartengono ai controlli e agli indicatori del pannello frontale. I dati che immettete nei controlli del pannello frontale entrano nello schema a blocchi attraverso i terminali di controllo. I dati quindi entrano nelle funzioni Add e Subtract. Quando le funzioni Add e Subtract completano i propri calcoli interni, producono nuovi valori. I dati scorrono verso i terminali indicatori, in cui escono dallo schema a blocchi, rientrano nel pannello frontale e compaiono sugli indicatori del pannello frontale. I terminali dello schema a blocchi precedente appartengono a quattro controlli e indicatori del pannello frontale. I riquadri connettori delle funzioni Add e Subtract, mostrati a sinistra, possiedono tre terminali di nodo. Per visualizzare il riquadro connettori, cliccate con il tasto destro del mouse sul nodo della funzione e selezionate Visible»ItemsTerminals dal menu rapido.

Collegamenti Potete trasferire dati fra gli oggetti dello schema a blocchi attraverso fili di collegamento. Essi sono analoghi alle variabili nei linguaggi di programmazione testuali. Ogni filo possiede un’unica sorgente di dati, ma potete collegarlo a diversi VI e funzioni che leggono quel dato. I fili hanno colori, stili e spessori diversi in funzione del loro tipo di dato. Gli esempi seguenti sono i più comuni tipi di collegamento. Tipo di collegamento Numerico

Scalare

Array 1D

Booleano Stringa

Array 2D

Colore Arancione (virgola mobile) Blu (intero) Verde Rosa

Collegamento automatico degli oggetti LabVIEW collega automaticamente gli oggetti quando li disponete sullo schema a blocchi. Potete anche collegare automaticamente oggetti già

LabVIEW Corso Base I

2-4

 National Instruments Corporation


Lezione 2

Creazione, modifica e verifica di un VI

presenti nello schema a blocchi. LabVIEW collega i terminali che meglio si adattano e lascia scollegati gli altri terminali. Quando spostate un oggetto selezionato vicino ad altri oggetti sullo schema a blocchi, LabVIEW disegna collegamenti temporanei per mostrarvi le connessioni valide. Quando rilasciate il pulsante del mouse per disporre l’oggetto sullo schema a blocchi, LabVIEW collega i fili automaticamente. Passate al collegamento automatico premendo la barra spaziatrice mentre muovete un oggetto con lo strumento Posiziona. Potete variare le impostazioni del collegamento automatico selezionando Tools»Options e quindi Block Diagram nella parte superiore del menu a tendina.

Visualizzazione dei terminali Per essere sicuri di collegare i terminali corretti sulle funzioni, visualizzate il riquadro connettori cliccando col tasto destro del mouse sul nodo della funzione e selezionando Visible Items»Terminals dal menu rapido. Per ritornare all’icona, cliccate col tasto destro del mouse sul nodo della funzione e selezionate Visible Items»Terminals dal menu rapido per rimuovere la selezione.

Programmazione a flusso di dati LabVIEW segue un modello a flusso di dati per eseguire i VI. Un nodo dello schema a blocchi viene eseguito quando tutti gli ingressi sono disponibili. Quando un nodo completa l’esecuzione, fornisce dati ai suoi terminali di uscita e passa i dati in uscita al nodo successivo nel percorso del flusso di dati. Visual Basic, C++, Java e la maggior parte di linguaggi di programmazione testuali, seguono per l’esecuzione dei programmi un modello a flusso di controllo. Nel flusso di controllo, l’ordine sequenziale degli elementi del programma determina l’ordine di esecuzione del programma. Per esempio, considerate uno schema a blocchi che somma due numeri e sottrae 50.0 dal risultato dell’addizione. In questo caso, lo schema a blocchi viene eseguito da sinistra a destra, non perché gli oggetti sono disposti in quell’ordine, ma perché uno degli ingressi della funzione Subtract non è valido fino a quando la funzione Add non ha finito di eseguire l’operazione e ha passato i dati alla funzione Subtract. Ricordate che un nodo viene eseguito solamente quando i dati sono disponibili a tutti i suoi terminali di ingresso, e fornisce i dati ai suoi terminali di uscita solo quando ha terminato l’esecuzione.

 National Instruments Corporation

2-5

LabVIEW Corso Base I


Lezione 2

Creazione, modifica e verifica di un VI

Nell’esempio seguente, considerate quale segmento di codice dovrebbe essere eseguito per primo – la funzione Add, Random Number o Divide. Non potete saperlo perché gli ingressi delle funzioni Add e Divide sono disponibili nello stesso istante e la funzione Random Number non ha ingressi. In una situazione in cui un segmento di codice dev’essere eseguito prima di un altro e non esiste dipendenza per quanto riguarda i dati tra le funzioni, utilizzate una struttura Sequence per forzare l’ordine di esecuzione. Fate riferimento alla Lezione 6, Strutture Case e Sequence, per maggiori informazioni sulle strutture Sequence.

Ricerca di Controlli, VI e funzioni Utilizzate i seguenti pulsanti di navigazione sulle palette Controls e Functions per navigare e cercare controlli, VI e funzioni: Ÿ

Up – Vi porta ad un livello superiore nella gerarchia della palette.

Ÿ

Search – Porta la palette in modalità di ricerca. In questa modalità potete effettuare ricerche su testo per individuare controlli, VI o funzioni nelle palette.

Ÿ

Options – Apre la finestra di dialogo Function Browser Options, dalla quale potete configurare l’aspetto delle palette.

Per esempio, se voi volete trovare la funzione Random Number, cliccate sul pulsante Search sulla barra degli strumenti della palette Functions e iniziate a digitare Random Number nella casella per l’immissione di testo nella parte superiore della palette. LabVIEW elenca tutte le voci corrispondenti sia perché iniziano con il testo che avete digitato oppure perché lo contengono. Potete cliccare su uno dei risultati di ricerca e trascinarlo nello schema a blocchi, come mostrato nell’esempio seguente.

LabVIEW Corso Base I

2-6

 National Instruments Corporation


Lezione 2

Creazione, modifica e verifica di un VI

Cliccate due volte sul risultato della ricerca per evidenziare la sua posizione nella palette. Potete quindi cliccare sul pulsante Up to Owning Palette per visualizzare la posizione gerarchica dell’oggetto.

ď›™ National Instruments Corporation

2-7

LabVIEW Corso Base I


Lezione 2

Creazione, modifica e verifica di un VI

Esercitazione 2-1

Obiettivo: Costruire un VI

VI Convert C to F

Completate i passi seguenti per creare un VI che prenda un numero che rappresenta gradi Celsius e lo converta in numero che rappresenta gradi Fahrenheit. Nelle illustrazioni dei collegamenti, la freccia alla fine dell’icona del mouse mostra dove cliccare e il numero sulla freccia indica quante volte.

Pannello frontale

17. Selezionate File»New per aprire un nuovo pannello frontale. (Windows, Sun e HP-UX) Se avete chiuso tutti i VI aperti, cliccate sul

pulsante New VI nella finestra di dialogo LabVIEW. 18. (Opzionale) Selezionate Window»Tile Left and Right per visualizzare il pannello frontale e lo schema a blocchi affiancati. 19. Create un controllo digitale numerico. Utilizzerete questo controllo per inserire il valore in gradi centigradi. e. Selezionate il controllo digitale sulla palette Controls»Numeric. Se la palette Controls non è visibile, cliccate con il tasto destro del mouse in un’area libera del pannello frontale per visualizzarla. f. Spostate il controllo sul pannello frontale e cliccate per posizionarlo. g. Digitate deg C nell’etichetta e cliccate al di fuori dell’etichetta o cliccate sul pulsante Enter della barra degli strumenti, mostrato a utilizza un’etichetta di default. Potete editare un’etichetta in un qualsiasi momento utilizzando lo strumento Testo mostrato a sinistra. 20. Create un controllo digitale numerico. Voi utilizzerete questo indicatore per visualizzare il valore dei gradi Fahrenheit. h. Selezionate l’indicatore digitale sulla palette Controls»Numeric. i. Spostate l’indicatore sul pannello frontale e cliccate per posizionarlo. j. Digitate deg F nell’etichetta e cliccate al di fuori dell’etichetta o cliccate sul pulsante Enter. LabVIEW crea i corrispondenti terminali di controllo e indicatori sullo schema a blocchi. I terminali rappresentano il tipo di dato del controllo o dell’indicatore. Per esempio, un terminale DBL, mostrato a sinistra, rappresenta un controllo o un indicatore in doppia precisione, a virgola mobile.

LabVIEW Corso Base I

2-8

 National Instruments Corporation


Lezione 2

Creazione, modifica e verifica di un VI

Nota

I terminali dei controlli hanno un bordo più spesso di quello degli indicatori.

Schema a blocchi

21. Visualizzate lo schema a blocchi cliccandoci sopra o selezionando Windows»Show Diagram. 22. Selezionate le funzioni Multiply e Add sulla palette Functions»Numeric e disponetele sullo schema a blocchi. Se la palette Functions non è visibile, cliccate con il tasto destro del mouse su un’area libera dello schema a blocchi per visualizzarla. 23. Selezionate la costante numerica sulla palette Functions»Numeric e inseritene due sullo schema a blocchi. Quando all’inizio inserite una costante numerica, essa è evidenziata cosicché potete immettere un valore. 24. Digitate 1.8 in una costante e 32.0 nell’altra. Se avete spostato le costanti prima di aver immesso un valore, usate lo strumento Testo per immettere dei valori. 25. Utilizzate lo strumento Collega, mostrato a sinistra, per collegare le icone così come è mostrato nello schema a blocchi precedente. Ÿ

Per collegare un terminale all’altro, utilizzate lo strumento Collega per cliccare sul primo terminale, spostate lo strumento sul secondo terminale e cliccate su di esso, come mostrato nella figura seguente. Potete iniziare il collegamento ad uno qualsiasi dei terminali.

Ÿ

Potete cambiare la direzione di un collegamento cliccando per fissare il filo e spostando il cursore nella direzione perpendicolare. Premete la barra spaziatrice per cambiare la direzione del filo.

Ÿ

Per identificare i terminali sui nodi, cliccate con il tasto destro del mouse sulle funzioni Multiply e Add e selezionate Visible Items»Terminals dal menu rapido per visualizzare il riquadro connettori. Ritornate alle icone dopo aver effettuato il collegamento cliccando con il tasto destro del mouse sulle

 National Instruments Corporation

2-9

LabVIEW Corso Base I


Lezione 2

Creazione, modifica e verifica di un VI

funzioni e selezionando selezionate Visible Items»Terminals dal menu rapido per rimuovere la selezione. Ÿ

Quando spostate lo strumento Collega sopra un terminale, l’area del terminale lampeggia, ad indicare che cliccando collegherete il filo a quel terminale e compare una striscia che contiene il nome del terminale.

Ÿ

Per cancellare un collegamento già iniziato, premete il tasto <Esc>, cliccate con il tasto destro del mouse o cliccate sul terminale di partenza.

26. Visualizzate il pannello frontale cliccandoci o selezionando Window»Show Panel. 27. Salvate il VI perché lo utilizzerete più avanti nel corso. a. Selezionate File»Save. b. Andate su c:\exercises\LV Basics I. Nota Salvate tutti i VI modificati in questo corso in c:\exercises\LV Basics I.

c. Digitate Convert C to F.vi nella finestra di dialogo. d. Cliccate sul pulsante Save. 28. Inserite un numero nel controllo digitale ed avviate il VI. a. Utilizzate lo strumento Modifica, mostrato a sinistra, o lo strumento Testo per cliccare due volte sul controllo digitale ed immettete un nuovo numero. b. Cliccate sul pulsante Run, mostrato a sinistra, per avviare il VI. c. Provate parecchi numeri differenti ed eseguite il VI nuovamente. 29. Selezionate File»Close per chiudere il VI Convert C to F.

Fine dell’esercitazione 2-1

LabVIEW Corso Base I

2-10

 National Instruments Corporation


Lezione 2

Creazione, modifica e verifica di un VI

B. Tecniche di modifica Creazione di oggetti Oltre a creare oggetti sul pannello frontale dalla palette Controls, potete creare controlli, indicatori e costanti anche cliccando con il pulsante destro del mouse su un terminale di nodo e selezionando Create dal menu rapido. Non potete cancellare un terminale di controllo o indicatore dallo schema a blocchi. Il terminale scompare solo dopo che ne avete cancellato l’oggetto corrispondente dal pannello frontale.

Selezione di oggetti Utilizzate lo strumento Posiziona per cliccare su un oggetto per selezionarlo sul pannello frontale e sullo schema a blocchi. Quando l’oggetto viene selezionato, un contorno tratteggiato mobile lo circonda. Per selezionare più di un oggetto, premete il tasto <Shift> mentre cliccate su ogni oggetto aggiuntivo che volete selezionare. Potete anche selezionare oggetti multipli cliccando su un’area libera e trascinando il cursore fino a quando tutti gli oggetti si trovano nel rettangolo di selezione.

Spostamento di oggetti Potete spostare un oggetto cliccandoci sopra con lo strumento Posiziona e trascinandolo nella posizione desiderata. Potete anche spostare gli oggetti selezionati premendo i tasti freccia. Premete il tasto <Shift> mentre premete sulle frecce per spostare gli oggetti di diversi pixel alla volta. Potete vincolare la direzione di spostamento di un oggetto selezionato a quella orizzontale o verticale premendo il tasto <Shift> mentre spostate l’oggetto. La direzione in cui vi spostate inizialmente determina se l’oggetto è vincolato in direzione orizzontale o verticale.

Cancellazione di oggetti Potete cancellare oggetti utilizzando lo strumento Posiziona per selezionare gli oggetti e premendo il tasto <Delete> o selezionando Edit»Clear.

Undo/Redo Se commettete un errore mentre modificate un VI, potete effettuare l’undo o il redo selezionando Undo o Redo dal menu Edit. Potete impostare il numero di azioni su cui potete effettuare l’undo o il redo selezionando Tools»Options e quindi Block Diagram dal menu a tendina superiore.

 National Instruments Corporation

2-11

LabVIEW Corso Base I


Lezione 2

Creazione, modifica e verifica di un VI

Duplicazione di oggetti Potete duplicare la maggior parte degli oggetti premendo il tasto <Ctrl> mentre utilizzate lo strumento Posiziona per cliccare e trascinare la selezione. (Macintosh) Premete il tasto <Option>. (Sun) Premete il tasto <Meta>. (HPUX e Linux) Premete il tasto <Alt>. (HP-UX) Potete duplicare oggetti anche cliccando e trascinando l’oggetto

con il pulsante centrale del mouse. Dopo aver trascinato la selezione in una nuova posizione e rilasciato il pulsante del mouse, compare una copia dell’icona nella nuova posizione e l’icona originale rimane nella vecchia posizione. Questo processo prende il nome di clonazione. Potete anche duplicare oggetti selezionando Edit»Copy e quindi Edit»Paste.

Assegnazione di etichette agli oggetti Utilizzate le etichette per individuare oggetti sul pannello frontale e sullo schema a blocchi. LabVIEW comprende due tipi di etichette – vincolate e libere. Quelle vincolate appartengono ad un determinato oggetto, si spostano con esso e commentano solo quell’oggetto. Potete spostare un’etichetta vincolata indipendentemente, ma quando spostate l’oggetto proprietario di quell’etichetta, l’etichetta si sposta con esso. Le etichette libere non sono collegate ad alcun oggetto e potete crearle, muoverle, ruotarle o cancellarle indipendentemente. Utilizzatele per descrivere pannelli frontali e schemi a blocchi. Per creare un’etichetta libera, utilizzate lo strumento Testo per cliccare in un’area libera qualsiasi e digitate il testo che volete appaia nell’etichetta nel riquadro che compare. Dopo aver creato l’etichetta, cliccate dovunque al di fuori di essa o cliccate sul pulsante Enter sulla barra degli strumenti. Di default, premendo il tasto <Enter> viene aggiunta una nuova linea. Premete i tasti <Shift-Enter> per terminare l’immissione di testo. Per terminare l’immissione di testo con il tasto <Enter>, selezionate Tools»Options, quindi Front Panel dal menu a tendina superiore e contrassegnate il riquadro accanto alla voce End text entry with Return key. (Macintosh) Di default premendo il tasto <Return> viene aggiunta una

nuova linea.

Selezione e cancellazione di collegamenti Un segmento di filo è un singolo pezzo di filo orizzontale o verticale. Una curva in un filo è dove si incontrano due segmenti. Il punto in cui tre o

LabVIEW Corso Base I

2-12

 National Instruments Corporation


Lezione 2

Creazione, modifica e verifica di un VI

quattro segmenti di filo si incontrano costituisce una giunzione. Un ramo di filo contiene tutti i segmenti di filo da giunzione a giunzione, da terminale a giunzione o da terminale a terminale se non ci sono giunzioni tra i terminali. Per selezionare un segmento di filo, utilizzate lo strumento Posiziona per cliccare sul filo. Cliccate due volte per selezionare un ramo e tre volte per selezionare un intero filo.

1 2 3

Segmento Giunzione Curva

4 5

Ramo 6 Seleziona un segmento

Seleziona un 7 ramo

Seleziona un intero filo

Prolungamento dei fili Potete spostare uno o più oggetti collegati utilizzando lo strumento Posiziona per trascinare gli oggetti selezionati in un nuova posizione, come mostrato nell’esempio seguente.

Collegamenti rotti Un filo spezzato si presenta come una linea tratteggiata nera, come mostrato nell’esempio seguente. I fili spezzati possono presentarsi per diverse ragioni, come quando provate a collegare due oggetti con tipi di dato incompatibili.

1 Filo tratteggiato (spezzato)

 National Instruments Corporation

2-13

2 Filo intero (collegamento corretto)

LabVIEW Corso Base I


Lezione 2

Creazione, modifica e verifica di un VI

Spostate lo strumento Collega su un collegamento rotto per visualizzare il riquadro con i suggerimenti che descrive perché il filo è rotto. Cliccate tre volte sul filo con lo strumento Posiziona e premete il tasto <Delete> per rimuovere un filo spezzato. Potete rimuovere tutti i fili rotti selezionando Edit»Remove Broken Wires. Avvertenza

Adottate le dovute precauzioni quando rimuovete tutti i fili rotti. Talvolta un filo appare spezzato perché non avete finito di collegare lo schema a blocchi.

Modifica del font, dello stile e delle dimensioni del testo Potete modificare il font, lo stile, le dimensioni e l’allineamento di un qualsiasi testo in un’etichetta o il display di un controllo o indicatore selezionando il menu a tendina Text Settings sulla barra degli strumenti. Certi controlli e indicatori usano il testo in più di un display. Gli esempi comprendono gli assi dei grafici e gli indicatori digitali o i contrassegni di scala sulle scale numeriche. Potete modificare ogni display di testo indipendentemente utilizzando lo strumento Testo per evidenziare il testo, come mostrato nel grafico seguente. Selezionate quindi il menu a tendina Text Settings sulla barra degli strumenti.

Ridimensionamento degli oggetti Potete modificare le dimensioni della maggior parte degli oggetti del pannello frontale. Quando spostate lo strumento Posiziona su un oggetto ridimensionabile appaiono agli angoli di un oggetto rettangolare delle maniglie di ridimensionamento, mostrati a sinistra, e nel caso di oggetti circolari appaiono cerchi di ridimensionamento. Quando ridimensionate un oggetto, le dimensioni del font rimangono le stesse. Trascinate le maniglie di ridimensionamento o i cerchi fino alle dimensioni desiderate del contorno tratteggiato e rilasciate il pulsante del mouse. Premete il tasto <Shift> mentre trascinate le maniglie di ridimensionamento o i cerchi per mantenere le proporzioni dell’oggetto rispetto quelle originali. Potete anche ridimensionare oggetti dello schema a blocchi, come strutture e costanti.

LabVIEW Corso Base I

2-14

 National Instruments Corporation


Lezione 2

Creazione, modifica e verifica di un VI

Allineamento e distribuzione di oggetti Per allineare un gruppo di oggetti lungo degli assi, selezionate gli oggetti che volete allineare e selezionate il menu a tendina Align Objects sulla barra degli strumenti. Per spaziare uniformemente gli oggetti, selezionate gli oggetti e selezionate il menu a tendina Distribute Objects sulla barra degli strumenti.

Copia di oggetti tra VI o da altre applicazioni Potete copiare e incollare oggetti da un VI ad un altro selezionando Edit»Copy e quindi Edit»Paste. Potete anche copiare immagini o testo da altre applicazioni e copiarle sul pannello frontale o sullo schema a blocchi. Se entrambi i VI sono aperti, potete copiare tra VI oggetti selezionati trascinandoli da un VI e depositandoli in un altro VI.

Colorazione degli oggetti Potete cambiare la colorazione di molti oggetti ma non di tutti. Per esempio, i terminali dello schema a blocchi di oggetti del pannello frontale e i fili utilizzano colori specifici per il tipo e la rappresentazione dei dati che trasportano, e quindi non li potete modificare. Utilizzate lo strumento Colora e cliccate con il pulsante destro del mouse su un oggetto o sull’area lavorativa per aggiungere o modificare il colore degli oggetti del pannello frontale o delle aree lavorative del pannello frontale e dello schema a blocchi. Potete anche modificare i colori di default della maggior parte degli oggetti selezionando Tools»Options e quindi Colors dal menu a tendina superiore. Potete anche rendere trasparenti gli oggetti del pannello frontale per sovrapporli. Cliccate con il tasto destro del mouse su un oggetto con lo strumento Colora e selezionate il riquadro con una T dentro per rendere un oggetto trasparente.

 National Instruments Corporation

2-15

LabVIEW Corso Base I


Lezione 2

Creazione, modifica e verifica di un VI

Esercitazione 2-2

Obiettivo: Modificare un VI

VI Editing Exercise

Eseguite i passi seguenti per modificare un VI esistente, Editing Exercise, per farlo apparire come il pannello frontale seguente e collegate gli oggetti sullo schema a blocchi per rendere il VI operativo. Nota Ricordatevi che potete selezionare Edit»Undo se commettete errori.

Pannello frontale 1. Selezionate File»Open e andate su c:\exercise\LV Basics I per aprire il VI Editing Exercise. (Windows, Sun e HP-UX) Se avete chiuso tutti i VI aperti, cliccate sul

pulsante Open VI nella finestra di dialogo LabVIEW. 2. Riposizionate il controllo digitale. a. Utilizzate lo strumento Posiziona, mostrato a sinistra, per cliccare sul controllo digitale e trascinarlo in un’altra posizione. L’etichetta del controllo segue la posizione del controllo. b. Cliccate su uno spazio vuoto del pannello frontale per deselezionare il controllo. c. Cliccate sull’etichetta e trascinatela in un’altra posizione. Il controllo non la segue. Potete posizionare un’etichetta vincolata dovunque relativamente al controllo. L’etichetta segue l’oggetto cui è vincolata se spostate l’oggetto.

LabVIEW Corso Base I

2-16

 National Instruments Corporation


Lezione 2

Creazione, modifica e verifica di un VI

3. Riposizionate i tre interruttori a cursore come gruppo. a. Utilizzate lo strumento Posiziona per cliccare su un’area libera vicino ai tre interruttori e trascinate un rettangolo di selezione intorno agli interruttori. b. Cliccate su un interruttore e trascinatelo in una posizione differente. Tutti gli interruttori selezionati si muoveranno insieme. 4. Allineate orizzontalmente i tre LED indicatori e spaziateli uniformemente. a. Utilizzate lo strumento Posiziona per cliccare su un’area libera vicino ai tre LED e trascinate un rettangolo di selezione intorno ai LED. b. Selezionate il menu a tendina Align Objects sulla barra degli strumenti e selezionate Vertical Centers, mostrato a sinistra, per allineare orizzontalmente i LED. c. Selezionate il menu a tendina Distribute Objects sulla barra degli strumenti e selezionate Horizontal Centers, mostrato a sinistra, per spaziare uniformemente i LED 5. Ridimensionate il singolo LED circolare. a. Spostate lo strumento Posiziona sul LED. Compariranno dei cerchi di ridimensionamento sul LED. b. Cliccate e trascinate il cursore per ingrandire il LED. Premete il tasto <Shift> mentre trascinate il cursore per mantenere le proporzioni originali del LED. 6. Cambiate il colore del singolo LED circolare. a. Di default lo stato del LED è OFF e verde scuro (FALSE). Utilizzate lo strumento Modifica, mostrato a sinistra, per cliccare sul LED e portare il suo stato su ON e verde brillante (TRUE). b. Utilizzate lo strumento Colora, mostrato a sinistra, per cliccare col tasto destro del mouse sul LED e visualizzare la palette dei colori. c. Selezionate un colore rosso per modificare lo stato ON a rosso. 7. Visualizzate e modificate l’etichetta vincolata dell’indicatore digitale. a. Utilizzate lo strumento Testo, mostrato a sinistra, per cliccare con il tasto destro del mouse sull’indicatore digitale e selezionate Visible Items»Label dal menu rapido. Compare un piccolo riquadro, con un cursore di testo sul margine sinistro, pronto ad accettare l’immissione di testo. b. Digitate Digital Indicator nel riquadro. c. Cliccate in un punto qualsiasi esterno all’etichetta o cliccate sul pulsante Enter, mostrato a sinistra, della barra degli strumenti per terminare l’immissione di testo. 8. Cancellate il controlla della stringa.

 National Instruments Corporation

2-17

LabVIEW Corso Base I


Lezione 2

Creazione, modifica e verifica di un VI

a. Utilizzate lo strumento Posiziona per selezionare il controllo della stringa. b. Premete il tasto <Delete> o selezionate Edit»Clear. 9. Duplicate l’etichetta libera. a. Premete il tasto <Ctrl> e utilizzate lo strumento Posiziona per cliccare sull’etichetta. (Macintosh) Premete il tasto <Option>. (Sun) Premete il tasto <Meta>. (HP-UX e Linux) Premete il tasto <Alt>.

b. Trascinate la copia in una nuova posizione. 10. Modificate le caratteristiche del testo e nascondete il riquadro intorno all’etichetta libera. a. Utilizzate lo strumento Posiziona per selezionare l’etichetta libera. b. Selezionate sulla barra degli strumenti il menu a tendina Text Settings, mostrato a sinistra, e modificate le caratteristiche del testo. c. Utilizzate lo strumento Colora per cliccare con il tasto destro del mouse sull’etichetta e selezionate T dalla palette dei colori. 11. Modificate le caratteristiche del testo e colorate il testo dell’asse y. a. Utilizzate lo strumento Testo per evidenziare 10.0 sull’asse y. b. Selezionate sulla barra degli strumenti il menu a tendina Text Settings e modificate le caratteristiche del testo e il colore. 12. Cliccate due volte su 0.0 e digitate –10.0 per modificare l’intervallo dell’asse y.

Schema a blocchi 13. Selezionate Window»Show Diagram per visualizzare lo schema a blocchi. Collegate i terminali dello schema a blocchi come mostrato nello schema a blocchi seguente.

LabVIEW Corso Base I

2-18

 National Instruments Corporation


Lezione 2

Creazione, modifica e verifica di un VI

Ÿ

La funzione Multiply moltiplica una costante numerica, 5.00, per il valore nel controllo digitale.

Ÿ

Il VI Uniform White Noise genera una sequenza pseudorandom uniformemente distribuita i cui valori si trovano nell’intervallo [-a:a], in cui a è il valore assoluto di ampiezza, 10.0, e lo passa al grafico della forma d’onda.

Ÿ

La funzione Not inverte il valore dell’interruttore booleano A e passa il valore al LED circolare.

14. Cliccate con il tasto destro del mouse sul terminale in basso a sinistra della funzione Multiply e selezionate Create»Constant dal menu rapido per creare una costante numerica mostrata a sinistra. 15. Digitate 5 nella casella di testo e cliccate sul pulsante Enter della barra degli strumenti. 16. Utilizzate lo strumento Collega, mostrato a sinistra, e le tecniche seguenti per effettuare i collegamenti nello schema a blocchi: Ÿ

Selezionate Help»Show Context Help per visualizzare la finestra Context Help. Utilizzate la finestra Context Help per determinare quali terminali sono necessari. I terminali necessari sono in grassetto, i collegamenti raccomandati in testo normale i collegamenti opzionali in grigio.

Ÿ

Per individuare i terminali sui nodi, cliccate con il tasto destro del mouse sull’icona e selezionate Visible Items»Terminal dal menu rapido per visualizzare il riquadro connettori. Quando sono stati effettuati collegamenti, cliccate con il tasto destro del mouse sul riquadro connettori e selezionate Visible Items»Terminal dal menu rapido per rimuovere la scelta.

Ÿ

Per aggiungere un ramo ad un filo, cliccate sul punto del filo su cui volete far partire il ramo.

Ÿ

Per cancellare un filo iniziato, premete il tasto <Esc>, cliccate con il tasto destro del mouse o cliccate sul terminale di partenza.

17. Selezionate File»Save per salvare il VI. 18. Visualizzate il pannello frontale cliccandoci sopra o selezionando Window»Show Panel. 19. Utilizzate lo strumento Modifica per modificare il valore dei controlli del pannello frontale. 20. Cliccate sul pulsante Run della barra degli strumenti per avviare il VI. 21. Selezionate File»Close per chiudere il VI.

Fine dell’esercitazione 2-2

 National Instruments Corporation

2-19

LabVIEW Corso Base I


Lezione 2

Creazione, modifica e verifica di un VI

Tecniche di verifica Se un VI non parte, è un VI rotto o non eseguibile. Il pulsante Run spesso appare rotto, come mostrato a sinistra, quando create o modificate un VI. Se risulta ancora rotto quando avete finito di effettuare i collegamenti sullo schema a blocchi, il VI è rotto e non partirà.

Ricerca degli errori Cliccate sul pulsante Run o selezionate Windows»Show Error List per visualizzare la finestra Error list, che elenca tutti gli errori. Cliccate due volte su una descrizione di errore per visualizzare lo schema a blocchi o il pannello frontale pertinente e evidenziate l’oggetto che contiene l’errore.

Esecuzione evidenziata Visualizzate un’animazione dell’esecuzione dello schema a blocchi cliccando sul pulsante Highlight Execution, mostrato a sinistra. Highlight Execution mostra lo spostamento dei dati sullo schema a blocchi da un nodo ad un altro utilizzando dei cerchietti che si spostano lungo i collegamenti. Utilizzate l’esecuzione evidenziata insieme con l’avanzamento passo-passo per vedere come i dati si spostano da nodo a nodo nel VI. Nota

L’esecuzione evidenziata riduce enormemente la velocità di esecuzione del VI.

Esecuzione passo-passo Utilizzate l’esecuzione passo-passo in un VI per visualizzare ogni singola azione del VI sullo schema a blocchi quando il VI è in esecuzione. I pulsanti per l’esecuzione passo-passo hanno effetto sull’esecuzione solo in un VI o in un subVI in modalità passo-passo. Entrate in questa modalità cliccando sul pulsante Step Over o Step Into. Spostate il cursore sui pulsanti Step Over, Step Into o Step Out per visualizzare una legenda che descrive il passo successivo se cliccate quel pulsante. Potete utilizzare l’esecuzione passo-passo dei subVI o potete eseguirli normalmente. Se eseguite passo-passo un VI con esecuzione evidenziata attiva, appare un’immagine, mostrata a sinistra, sulle icone dei subVI che sono in esecuzione in quell’istante.

Sonde Utilizzate lo strumento Sonda, mostrato a sinistra, per verificare valori intermedi su un filo mentre il VI è in esecuzione. Quando l’esecuzione viene sospesa in un nodo a causa dell’esecuzione passo-passo o in un punto d’interruzione, potete anche sondare il filo che è stato appena eseguito per vedere il valore che è fluito attraverso il filo stesso.

LabVIEW Corso Base I

2-20

 National Instruments Corporation


Lezione 2

Creazione, modifica e verifica di un VI

Potete anche creare una sonda personalizzata per specificare quale indicatore volete utilizzare per visualizzare i dati della sonda. Per esempio, se state visualizzando dati numerici, potete scegliere di vederli in un grafico dentro la sonda. Per creare una sonda personalizzata, cliccate con il tasto destro del mouse su un filo e selezionate Custom Probe dal menu rapido.

Punti d’interruzione Utilizzate lo strumento Punto d’interruzione, mostrato a sinistra, per inserire un punto d’interruzione su un VI, in un nodo o su un filo dello schema a blocchi e per sospendere l’esecuzione in quella posizione. Quando avete messo un punto d’interruzione su un filo, l’esecuzione viene sospesa dopo che i dati hanno attraversato il filo. Inserite un punto d’interruzione sull’area di lavoro dello schema a blocchi per sospendere l’esecuzione dopo che tutti i nodi sullo schema a blocchi sono stati eseguiti. I punti d’interruzione sono cornici rosse per i nodi e per gli schemi a blocchi e punti rossi per i fili. Quando spostate il cursore su un punto d’arresto esistente, l’area nera del cursore dello strumento Punto d’interruzione appare bianca.

 National Instruments Corporation

2-21

LabVIEW Corso Base I


Lezione 2

Creazione, modifica e verifica di un VI

Esercitazione 2-3

VI Debug Exercise (Main)

Obiettivo: Acquisire pratica con le tecniche di verifica di un VI

Completate i passi seguenti per caricare un VI rotto e correggete l’errore utilizzando l’esecuzione passo-passo e l’esecuzione evidenziata per analizzare il VI. 1. Selezionate File»Open ed andate su c:\exercises\LV Basics I per aprire il VI Debug Exercise (Main). (Windows, Sun e HP-UX) Se avete chiuso tutti i VI aperti, cliccate sul

pulsante Open VI della finestra di dialogo di LabVIEW. Appare il seguente pannello frontale.

Sulla barra degli strumenti compare il pulsante rotto Run, mostrato a sinistra, ad indicare che il VI è rotto. 2. Selezionate Window»Show Diagram per visualizzare lo schema a blocchi seguente.

La funzione Random Number (0-1) genera un numero casuale tra 0 e 1. La funzione Multiply moltiplica il numero casuale per 10.0. La costante numerica è il numero da moltiplicare per il numero casuale. Il VI Debug Exercise (Sub) aggiunge 100.0 e calcola la radice quadrata del valore ottenuto. 3. Trovate gli errori ed eliminateli. a. Cliccate sul pulsante rotto Run. La finestra Error List che compare elenca tutti gli errori. b. Cliccate sulla descrizione di ciascun errore per maggiori informazioni sull’errore. c. Cliccate sul pulsante Show Error per visualizzare lo schema a blocchi o il pannello frontale corrispondente ed evidenziate l’oggetto che contiene l’errore. d. Utilizzate l’informazione presente nella sezione Details per eliminare ciascun errore.

LabVIEW Corso Base I

2-22

 National Instruments Corporation


Lezione 2

Creazione, modifica e verifica di un VI

4. Selezionate File»Save per salvare il VI. 5. Visualizzate il pannello frontale cliccandoci sopra o selezionando Window»Show Panel. 6. Cliccate sul pulsante Run per eseguire il VI diverse volte. 7. Selezionate Window»Show Diagram per visualizzare lo schema a blocchi. 8. Animate il flusso dei dati attraverso lo schema a blocchi. a. Cliccate sul pulsante Highlight Execution, mostrato a sinistra, per abilitare l’esecuzione evidenziata. b. Cliccate sul pulsante Step Into, mostrato a sinistra, per avviare l’esecuzione passo-passo. L’esecuzione evidenziata mostra lo spostamento dei dati sullo schema a blocchi da un nodo all’altro utilizzando dei cerchi che si spostano lungo i fili. I nodi lampeggiano ad indicare che sono pronti per l’esecuzione. c. Cliccate sul pulsante Step Over, mostrato a sinistra, dopo ogni nodo per procedere nell’intero schema a blocchi. Ogni volta che cliccate sul pulsante Step Over, il nodo corrente viene eseguito e si ferma al nodo successivo, che è pronto ad essere eseguito. I dati appaiono sul pannello frontale man mano che procedete nel VI. Il VI genera un numero casuale e lo moltiplica per 10.0. Il subVI aggiunge 100.0 ed effettua la radice quadrata del risultato. d. Quando il contorno dello schema a blocchi lampeggia, cliccate sul pulsante Step Out, mostrato a sinistra, per bloccare l’avanzamento passo-passo attraverso il VI Debug Exercise (Main). 9. Avanzate passo-passo attraverso il VI e i suoi subVI. a. Cliccate sul pulsante Step Into per avviare l’esecuzione passopasso. b. Quando il VI Debug Exercise (Sub) lampeggia, cliccate sul pulsante Step Into. Compare lo schema a blocchi seguente.

c. Visualizzate lo schema a blocchi del VI Debug Exercise (Main) cliccandoci sopra. Sull’icona del subVI dello schema a blocchi del VI Debug Exercise (Main) compare un’immagine verde, mostrata a sinistra, ad indicare che ci si trova nella modalità di esecuzione passo-passo. d. Visualizzate lo schema a blocchi del VI Debug Exercise (Sub) cliccandoci sopra.

 National Instruments Corporation

2-23

LabVIEW Corso Base I


Lezione 2

Creazione, modifica e verifica di un VI

e. Cliccate due volte sul pulsante Step Out per completare l’esecuzione passo-passo attraverso lo schema a blocchi del subVI. Lo schema a blocchi del VI Debug Exercise (Main) è attivo. f. Cliccate sul pulsante Step Out per arrestare l’esecuzione passopasso. 10. Utilizzate una sonda per visualizzare i dati man mano che passano attraverso un filo. a. Utilizzate lo strumento Sonda, mostrato a sinistra, per cliccare su un oggetto. Compare la finestra seguente.

Il numero nella barra del titolo della finestra Probe corrisponde al numero sullo schema a blocchi in cui è stata disposta la sonda. b. Eseguite nuovamente passo-passo il VI. La finestra Probe visualizza i dati man mano che attraversano ogni segmento di filo. 11. Disponete dei punti d’interruzione sullo schema a blocchi per arrestare l’esecuzione in quei punti. a. Utilizzate lo strumento Punto d’interruzione, mostrato a sinistra, per cliccare sui nodi o sui fili. Cliccare sull’area operativa dello schema a blocchi corrisponde ad interrompere sulla prima linea. b. Cliccate sul pulsante Run per avviare il VI. Il VI arresta l’esecuzione nei punti d’interruzione prescelti. c. Cliccate sul pulsante Continue, mostrato a sinistra, per riprendere l’esecuzione del VI. d. Utilizzate lo strumento Punto d’interruzione per cliccare sui punti d’interruzione impostati e rimuoverli. 12. Cliccate sul pulsante Highlight l’esecuzione evidenziata.

Execution

per

disabilitare

13. Selezionate File»Close per chiudere il VI e tutte le finestre aperte.

Fine dell’esercitazione 2-3

LabVIEW Corso Base I

2-24

 National Instruments Corporation


Lezione 2

Creazione, modifica e verifica di un VI

Sommario, trucchi e consigli Sommario Ÿ

Costruite il pannello frontale con controlli e indicatori, che costituiscono rispettivamente i terminali di ingresso e di uscita interattivi del VI.

Ÿ

I terminali di controllo hanno un bordo più spesso di quelli indicatori. Per trasformare un controllo in un indicatore o viceversa, cliccate con il tasto destro del mouse sull’oggetto e selezionate Change to Indicator o Change to Control dal menu rapido.

Ÿ

Lo schema a blocchi si compone di nodi, terminali e fili.

Ÿ

Utilizzate lo strumento Modifica per configurare i controlli e gli indicatori del pannello frontale. Utilizzate lo strumento Posiziona per selezionare, spostare e ridimensionare gli oggetti. Utilizzate lo strumento Collega per collegare gli oggetti sullo schema a blocchi.

Ÿ

Utilizzate il pulsante Search sulle palette Controls e Functions per cercare controlli, VI e funzioni.

Ÿ

Il pulsante rotto Run compare sulla barra degli strumenti ad indicare che il VI è rotto. Cliccate sul pulsante Run rotto per visualizzare la finestra Error list, che elenca tutti gli errori.

Ÿ

Utilizzate l’esecuzione evidenziata, l’esecuzione passo-passo, le sonde, i punti d’interruzione per verificare i VI animando il flusso dei dati attraverso lo schema a blocchi.

Trucchi e consigli La maggior parte dei trucchi e consigli seguenti funziona premendo il tasto <Ctrl>. (Macintosh) Premete il tasto <Option> invece di quello <Ctrl>. (Sun) Premete il tasto <Meta>. (HP-UX e Linux) Premete il tasto <Alt>.

Funzionamento Ÿ

Le opzioni di menu utilizzate più di frequente hanno delle combinazioni di tasti equivalenti. Per esempio, per salvare un VI, potete selezionare File»Save o premere i tasti <Ctrl-S>. Le combinazioni di tasti più comuni sono: <Ctrl-R>

Avvia un VI.

<Ctrl-E>

Consente di passare dal pannello frontale allo schema a blocchi e viceversa.

<Ctrl-H>

Visualizza o nasconde la finestra Context Help.

<Ctrl-B>

Rimuove i fili rotti.

 National Instruments Corporation

2-25

LabVIEW Corso Base I


Lezione 2

Creazione, modifica e verifica di un VI

<Ctrl-F>

Trova i VI, variabili globali, funzioni, testo o altri oggetti caricati in memoria o in un elenco specificato di VI.

Ÿ

Per passare da uno strumento all’altro nella palette Tools, premete il tasto <Tab>. Per passare dallo strumento Posiziona a quello Collega sullo schema a blocchi o da quello Posiziona a quello Modifica sul pannello frontale e viceversa, premete la barra spaziatrice.

Ÿ

Per incrementare o decrementare i controlli digitali più rapidamente, utilizzate gli strumenti Modifica o Testo per disporre il cursore nel controllo e premete il tasto <Shift> mentre premete sulle freccette in su o in giù.

Ÿ

Potete disabilitare gli strumenti di verifica per ridurre l’impegno di memoria e per aumentare leggermente le prestazioni. Selezionate File»VI Properties, quindi Execution dal menu a tendina superiore e rimuovete la selezione dal riquadro Allow Debugging.

Modifica Ÿ

Utilizzate le seguenti combinazioni rapide per creare costanti, controlli e indicatori. − Cliccate con il tasto destro del mouse su un terminale di funzione e selezionate Create»Constant, Create»Control o Create»Indicator dal menu rapido. − Trascinate controlli e indicatori dal pannello frontale allo schema a blocchi per creare una costante. − Trascinate le costanti dallo schema a blocchi al pannello frontale per creare un controllo.

LabVIEW Corso Base I

Ÿ

Per duplicare un oggetto, premete il tasto <Ctrl> mentre usate lo strumento Posiziona per cliccare su una selezione e trascinarla.

Ÿ

Per vincolare l’oggetto a spostarsi solo in direzione orizzontale o verticale, utilizzate lo strumento Posiziona per selezionare l’oggetto e premete il tasto <Shift> mentre spostate l’oggetto.

Ÿ

Per conservare le proporzioni originali di un oggetto quando lo ridimensionate, premete il tasto <Shift> mentre trascinate le maniglie o i cerchi di ridimensionamento.

Ÿ

Per ridimensionare un oggetto mentre lo disponete sul pannello frontale, premete il tasto <Ctrl> mentre cliccate per posizionare l’oggetto e trascinate le maniglie o i cerchi di ridimensionamento.

Ÿ

Per sostituire i nodi, cliccate con il tasto destro del mouse sul nodo e selezionate Replace dal menu rapido.

Ÿ

Per visualizzare lo schema a blocchi di un subVI dal VI chiamante, premete il tasto <Ctrl> ed utilizzate lo strumento Modifica o Posiziona per cliccare due volte sul subVI nello schema a blocchi.

2-26

 National Instruments Corporation


Lezione 2

Creazione, modifica e verifica di un VI

Ÿ

Per visualizzare il pannello frontale di un subVI dal VI chiamante, utilizzate lo strumento Modifica o Posiziona per cliccare due volte sul subVI nello schema a blocchi. Potete anche selezionare Browse»This VI’s SubVIs.

Ÿ

Dopo aver inserito il testo in un’etichetta, premete i tasti <ShiftEnter> per concludere l’inserimento.

Ÿ

Per aggiungere termini rapidamente ai controlli di tipo ring e alle strutture Case, premete i tasti <Shift-Enter> dopo ogni termine. Premendo <Shift-Enter> la voce viene accettata e il cursore viene posizionato per aggiungere la voce successiva.

Ÿ

Per copiare il colore di un oggetto e trasferirlo su un secondo oggetto senza utilizzare la palette dei colori, utilizzate lo strumento Copia Colore cliccando sull’oggetto di cui si vuol copiare il colore. Utilizzate quindi lo strumento Colora per cliccare sull’oggetto cui si vuole applicare il colore. Potete anche copiare il colore di un oggetto utilizzando lo strumento Colora e premendo il tasto <Ctrl>.

Ÿ

Selezionate Edit»Undo se commettete un errore.

Ÿ

Per creare più spazio bianco sullo schema a blocchi, premete il tasto <Ctrl> mentre usate lo strumento Posiziona per disegnare un rettangolo sullo schema a blocchi.

Collegamenti Ÿ

Selezionate Help»Show Context Help per visualizzare la finestra Context Help. Utilizzate la finestra Context Help per determinare quali terminali sono necessari. I terminali necessari sono in grassetto, i collegamenti consigliati sono in testo normale e quelli opzionali in grigio.

Ÿ

Premete la barra spaziatrice per cambiare la direzione del filo.

Ÿ

Potete piegare un filo cliccando per fissare il filo e spostando il cursore in direzione perpendicolare. Per fissare un filo e interromperlo, cliccate due volte.

1 Fissate un filo cliccando

Ÿ

2

Fissate e interrompete un filo con un doppio click

Per mostrare dei punti alle giunzioni dei fili sullo schema a blocchi, selezionate Tools»Options e quindi Block Diagram dal menu a tendina superiore.

 National Instruments Corporation

2-27

LabVIEW Corso Base I


Lezione 2

Creazione, modifica e verifica di un VI

Ÿ

Per muovere gli oggetti di un pixel, premete i tasti freccia. Per muovere gli oggetti di parecchi pixel, premete il tasto <Shift> mentre agite sulle frecce.

Ÿ

Per cancellare un filo iniziato, premete il tasto <Esc>, cliccate con il tasto destro del mouse o cliccate sul terminale di partenza.

Ÿ

Utilizzate le strisce di legenda che compaiono quando vi spostate con lo strumento Collega sui terminali.

Ÿ

Visualizzate il riquadro dei connettori cliccando con il tasto destro del mouse sul nodo e selezionando Visible Items»Terminals dal menu rapido.

Verifiche Ÿ

Quando siete in modalità di esecuzione passo-passo, utilizzate le seguenti combinazioni rapide di tasti: <Ctrl-freccia verso il basso> Step Into.

LabVIEW Corso Base I

<Ctrl-freccia verso destra>

Step Over.

<Ctrl-freccia verso l’alto>

Step Out.

2-28

 National Instruments Corporation


Lezione 2

Creazione, modifica e verifica di un VI

Esercizi aggiuntivi 2-4

Costruite un VI che confronta due numeri e accende un LED se il primo numero è maggiore o uguale del secondo.

Consiglio

Utilizzate la funzione Greater Or Equal? che si trova nella palette Functions»Comparison. Salvate il VI come Compare.vi. 2-5

Costruite un VI che genera un numero casuale compreso tra 0.0 e 10.0 e lo divide per un numero specificato sul pannello frontale. Se il numero di ingresso è 0, il VI deve accendere un LED sul pannello frontale ad indicare un errore per divisione per zero. Salvate il VI come Divide.vi.

 National Instruments Corporation

2-29

LabVIEW Corso Base I


Lezione 2

Creazione, modifica e verifica di un VI

Note

LabVIEW Corso Base I

2-30

ď›™ National Instruments Corporation


Lezione 3 Creazione di un subVI Questa lezione vi introduce all’icona e al riquadro dei connettori di un VI e descrive come potete utilizzare un VI come subVI in altri VI.

Imparerete: H. A conoscere i subVI I. A creare un’icona e il riquadro dei connettori J. Ad utilizzare un VI come subVI K. A creare subVI da sezioni di un altro VI

 National Instruments Corporation

3-1

LabVIEW Corso Base I


Lezione 3

Creazione di un subVI

A. SubVI Dopo aver costruito un VI e creato la sua icona e il suo riquadro dei connettori, potete utilizzarlo in un altro VI. Un VI in un altro viene chiamato subVI. Un subVI corrisponde ad una subroutine nei linguaggi di programmazione testuali. Un nodo subVI corrisponde ad una chiamata ad una subroutine nei linguaggi di programmazione testuali. Il nodo non è il subVI stesso, proprio come una chiamata ad una subroutine in un programma non è la subroutine stessa. Utilizzare i subVI vi aiuta a gestire rapidamente modifiche e verifiche sullo schema a blocchi. Fate riferimento al LabVIEW Basics II Course Manual per maggiori informazioni sullo sviluppo di applicazioni. I seguenti pseudo-codici e schemi a blocchi dimostrano l’analogia tra subVI e subroutine. Codice della Funzione function average (in1, in2, out) { out = (in1 + in2) / 2.0; }

Schema a blocchi del subVI

LabVIEW Corso Base I

3-2

Codice del programma chiamante main { average (point1, point2, pointavg) }

Schema a blocchi del VI chiamante

 National Instruments Corporation


Lezione 3

Creazione di un subVI

B. Icona e riquadro dei connettori Dopo aver costruito un pannello frontale e uno schema a blocchi di un VI, costruite la sua icona e il suo riquadro dei connettori per utilizzare il VI come subVI.

Creazione di un’icona Ogni VI visualizza un’icona, mostrata sinistra, nell’angolo superiore destro delle finestre del pannello frontale e dello schema a blocchi. Un’icona è una rappresentazione grafica di un VI. Può contenere testo, immagini o una combinazione di entrambi. Se utilizzate un VI come subVI, l’icona identifica il subVI nello schema a blocchi del VI L’icona di default contiene un numero che indica quanti nuovi VI avete aperto dall’avvio di LabVIEW. Create icone personalizzate per sostituire l’icona di default cliccando con il tasto destro del mouse nell’angolo superiore destro del pannello frontale o dello schema a blocchi e selezionando Edit Icon dal menu rapido o cliccando due volte sull’icona nell’angolo superiore destro del pannello frontale. Potete anche modificare le icone selezionando File»VI Properties, e quindi General dal menu a tendina Category e cliccando sul pulsante Edit Icon. Utilizzate gli strumenti sul lato sinistro della finestra di dialogo Icon Editor per creare il disegno dell’icona nell’area di modifica. L’immagine a dimensioni normali dell’icona compare in un apposito riquadro sulla destra dell’area di modifica, come mostrato nella seguente finestra di dialogo.

Potete anche trascinare un’immagine grafica da un qualsiasi file e depositarla nell’angolo superiore destro del pannello frontale o dello schema a blocchi. LabVIEW converte l’immagine in un’icona 32 x 32 pixel. A seconda del tipo di monitor che utilizzate, potete disegnare icone monocromatiche, a 16 e a 256 colori. LabVIEW utilizza l’icona monocromatica per la stampa a meno che non abbiate una stampante a

 National Instruments Corporation

3-3

LabVIEW Corso Base I


Lezione 3

Creazione di un subVI

colori. Di default è attiva la modalità a 256 colori. Selezionate l’opzione Copy from per modificare la modalità. Utilizzate gli strumenti sul lato sinistro della finestra di dialogo Icon Editor per svolgere le seguenti attività: Utilizzate lo strumento matita per disegnare e cancellare pixel per pixel. Utilizzate lo strumento Linea per disegnare linee rette. Per disegnare linee orizzontali, verticali e diagonali, premete il tasto <Shift> mentre utilizzate questo strumento per trascinare il cursore. Utilizzate lo strumento Copia Colore per copiare il colore in primo piano di un elemento nell’icona. Utilizzate lo strumento Riempi per inserire in un’area circoscritta il colore di primo piano. Utilizzate lo strumento Rettangolo per disegnare un bordo rettangolare con il colore in primo piano. Cliccate due volte su questo strumento per incorniciare l’icona con il colore in primo piano. Utilizzate lo strumento Rettangolo Riempito per disegnare un rettangolo con una cornice con il colore di primo piano e riempito con il colore di sfondo. Cliccate due volte su questo strumento per incorniciare l’icona con il colore in primo piano e riempirla con il colore di sfondo. Utilizzate lo strumento Seleziona per selezionare un’area dell’icona da ritagliare, copiare, spostare o su cui effettuare altri cambiamenti. Cliccate due volte su questo strumento e premete il tasto <Delete> per cancellare l’intera icona. Utilizzate lo strumento Testo per inserire testo nell’icona. Cliccate due volte su questo strumento per selezionare un font differente. (Windows) L’opzione Small Fonts funziona bene nelle icone Utilizzate lo strumento In primo piano/Sfondo per visualizzare i colori correnti di primo piano e di sfondo. Cliccate su ogni rettangolo per visualizzare una palette dei colori da cui selezionare nuovi colori. Utilizzate le opzioni sul lato destro dell’area di modifica per svolgere i compiti seguenti:

LabVIEW Corso Base I

Ÿ

Show Terminals – Visualizza lo schema del terminale nel riquadro dei connettori

Ÿ

OK – Salva il disegno come icona e ritorna al pannello frontale

Ÿ

Cancel – Ritorna al pannello frontale senza salvare i cambiamenti

3-4

 National Instruments Corporation


Lezione 3

Creazione di un subVI

La barra menu nella finestra di dialogo Icon Editor contiene più opzioni di modifica come Undo, Redo, Cut, Copy, Paste e Clear.

Costruzione del riquadro dei connettori Per utilizzare un VI come subVI, dovete costruire un riquadro dei connettori, mostrato a sinistra. Il riquadro dei connettori è un insieme di terminali che corrisponde ai controlli e agli indicatori di quel VI, in maniera simile all’elenco dei parametri di una chiamata di funzione nei linguaggi di programmazione testuali. Il riquadro dei connettori definisce gli ingressi e le uscite che potete collegare al VI per poterlo utilizzare come subVI. Definite i collegamenti assegnando un controllo o indicatore del pannello frontale ad ogni terminale del riquadro dei connettori. Per definire un riquadro dei connettori, cliccate col tasto destro del mouse sull’icona nell’angolo superiore destro della finestra del pannello frontale e selezionate Show Connector dal menu rapido. Il riquadro dei connettori sostituisce l’icona. Ogni rettangolo sul riquadro dei connettori rappresenta un terminale. Utilizzate i rettangoli per assegnare ingressi e uscite. Il numero dei terminali che visualizza LabVIEW dipende dal numero di controlli e di indicatori sul pannello frontale. Il pannello frontale seguente possiede quattro controlli e un indicatore, e quindi LabVIEW visualizza quattro terminali d’ingresso e un terminale di uscita sul riquadro dei connettori.

Selezione e modifica degli schemi dei terminali Selezionate uno schema di terminale differente per un VI cliccando con il tasto destro del mouse sul riquadro dei connettori e selezionando Patterns dal menu rapido. Selezionate uno schema di riquadro dei connettori con più terminali. Potete lasciare i terminali in più non collegati finché non ne avete bisogno. Questa flessibilità vi consente di effettuare cambiamenti con un impatto minimo sulla gerarchia dei VI. Potete anche avere più controlli o indicatori sul pannello frontale che terminali.

 National Instruments Corporation

3-5

LabVIEW Corso Base I


Lezione 3

Creazione di un subVI

Una cornice spessa evidenzia lo schema associato all’icona. Il numero massimo di terminali disponibile per un subVI è di 28. Nota

Cercate di non assegnare più di 16 terminali ad un VI. Troppi terminali possono ridurre la chiarezza e l’utilizzabilità del VI. Per modificare la disposizione spaziale degli schemi dei riquadri dei connettori, cliccate con il tasto destro del mouse sul riquadro dei connettori e selezionate Flip Horizontal, Flip Vertical o Rotate 90 Degrees dal menu rapido.

Assegnazione dei terminali ai controlli e agli indicatori Dopo aver selezionato uno schema da utilizzare per il vostro riquadro dei connettori, dovete definire i collegamenti assegnando un controllo o un indicatore del pannello frontale ad ogni terminale del riquadro dei connettori. Quando collegate controlli e indicatori al riquadro dei connettori, disponete gli ingressi sulla sinistra e le uscite sulla destra per evitare schemi di collegamento complicati e poco chiari nei vostri VI. Per assegnare un terminale ad un controllo o ad un indicatore del pannello frontale, cliccate sul terminale del riquadro dei connettori. Cliccate sul controllo o sull’indicatore del pannello frontale che volete assegnare al terminale. Cliccate su un’area libera del pannello frontale. Il terminale passa al colore del tipo di dato del controllo ad indicare che avete collegato il terminale. Potete anche selezionare il controllo o l’indicatore prima, e quindi selezionare il terminale. Nota

Sebbene utilizziate lo strumento Collega per assegnare terminali sul riquadro dei connettori ai controlli e agli indicatori del pannello frontale, non vengono disegnati dei fili tra il riquadro dei connettori e questi controlli e indicatori.

LabVIEW Corso Base I

3-6

 National Instruments Corporation


Lezione 3

Esercitazione 3-1

Creazione di un subVI

VI Convert C to F

Obiettivo: Creare un’icona e un riquadro connettori per poter utilizzare un VI come subVI Completate i passi seguenti per creare un’icona e un riquadro dei connettori per il VI che avete costruito per convertire una temperatura da gradi Celsius a gradi Fahrenheit.

Pannello frontale 30. Selezionate File»Open e andate su c:\exercises\LV Basics I per aprire il VI Convert C to F. (Windows, Sun e HP-UX) Se avete chiuso tutti i VI aperti, cliccate sul

pulsante Open VI nella finestra di dialogo LabVIEW. Suggerimento Cliccate sulla freccia accanto al pulsante Open VI della finestra di dialogo LabVIEW per aprire i file aperti di recente, come Convert C to F.vi.

Compare il seguente pannello frontale.

31. Cliccate con il tasto destro del mouse sull’icona nell’angolo superiore destro del pannello frontale e selezionate Edit Icon dal menu rapido. Compare la finestra di dialogo Icon Editor. 32. Cliccate due volte sullo strumento Seleziona, mostrato a sinistra, sul lato sinistro della finestra di dialogo Icon Editor per selezionare l’icona di default. 33. Premete il tasto <Delete> per rimuovere l’icona di default. 34. Cliccate due volte sullo strumento Rettangolo, mostrato a sinistra, per ridisegnare il bordo. 35. Create l’icona seguente.

 National Instruments Corporation

3-7

LabVIEW Corso Base I


Lezione 3

Creazione di un subVI

a. Utilizzate lo strumento Testo, mostrato a sinistra, per cliccare sull’area di modifica. b. Digitate C e F. c. Cliccate due volte sullo strumento Testo e modificate il font in Small Fonts. d. Utilizzate lo strumento Matita, mostrato a sinistra, per creare la freccia. Nota

Per disegnare linee rette orizzontali o verticali, premete il tasto <Shift> mentre utilizzate lo strumento Pencil per trascinare il cursore. e. Utilizzate lo strumento Seleziona e le frecce per spostare il testo e le frecce che avete creato. f. Selezionate l’icona B & W e selezionate 256 Colors nel campo Copy from per creare un’icona in bianco e nero, che LabVIEW utilizza per la stampa a meno che non abbiate una stampante a colori. g. Quando l’icona è completa, cliccate sul pulsante OK per chiudere la finestra di dialogo Icon Editor. L’icona compare nell’icona nell’angolo superiore destro del pannello frontale e dello schema a blocchi. 36. Cliccate con il tasto destro del mouse sul pannello frontale e selezionate Show Connector dal menu rapido per definire lo schema dei terminali del riquadro dei connettori. LabVIEW seleziona uno schema del riquadro dei connettori basato sul numero di controlli e indicatori presenti sul pannello frontale. Per esempio, questo pannello frontale possiede due terminali, deg C e deg F, e quindi LabVIEW seleziona uno schema a due terminali per il riquadro dei connettori, come mostrato a sinistra. 37. Assegnate i terminali al controllo digitale e all’indicatore digitale. a. Selezionate Help»Show Context Help per visualizzare la finestra Context Help. Visualizzate ogni collegamento nella finestra Context Help così come lo avete realizzato. b. Cliccate sul terminale sinistro nel riquadro dei connettori. Lo strumento passa automaticamente allo strumento Collega e il terminale diventa nero. c. Cliccate sul controllo deg C. Il terminale diventa arancione e un segno evidenzia il controllo. d. Cliccate su un’area libera del pannello frontale. Il segno scompare e il terminale diventa del colore di tipo di dato del controllo per indicare che siete collegato al terminale. e. Cliccate sul terminale destro nel riquadro dei connettori e cliccate sull’indicatore deg F. Il terminale destro diventa arancione.

LabVIEW Corso Base I

3-8

 National Instruments Corporation


Lezione 3

Creazione di un subVI

f. Cliccate su un’area libera del pannello frontale. Entrambi i terminali sono arancioni. g. Spostate il cursore sul riquadro dei connettori. La finestra Context Help mostra che entrambi i terminali sono collegati a dati del tipo a virgola mobile. 38. Selezionate File»Save per salvare il VI, perché lo utilizzerete più avanti nel corso. 39. Selezionate File»Close per chiudere il VI Convert C to F.

Fine dell’esercitazione 3-1

 National Instruments Corporation

3-9

LabVIEW Corso Base I


Lezione 3

Creazione di un subVI

C. Utilizzo di subVI Dopo aver costruito un VI e creato la sua icona e il riquadro dei connettori, potete utilizzarlo come subVI. Per inserire un subVI nello schema a blocchi, selezionate Functions»Select a VI. Cliccate sul VI che volete utilizzare come subVI e inseritelo nello schema a blocchi. Potete anche inserire un VI aperto nello schema a blocchi di un altro VI aperto, utilizzando lo strumento Posiziona per cliccare sull’icona nell’angolo superiore destro del pannello frontale o dello schema a blocchi del VI che volete utilizzare come subVI e trascinare l’icona nello schema a blocchi dell’altro VI.

Apertura e modifica di subVI Per visualizzare il pannello frontale di un subVI dal VI chiamante, utilizzate lo strumento Modifica o Posiziona, per cliccare due volte sul subVI nello schema a blocchi. Potete anche selezionare Browse»This VI’s SubVIs. Per visualizzare lo schema a blocchi di un subVI dal VI chiamante, premete il tasto <Ctrl> ed utilizzate lo strumento Modifica o Posiziona per cliccare due volte sul subVI nello schema a blocchi. (Macintosh) Premete il tasto <Option>. (Sun) Premete il tasto <Meta>. (HPUX e Linux) Premete il tasto <Alt>.

Ogni modifica che effettuate nel subVI influenza solo la sessione corrente del subVI fino al salvataggio del subVI. Quando salvate il subVI, le modifiche influenzano tutte le chiamate al subVI, non solo la sessione corrente.

Impostazioni di ingressi e uscite necessarie, raccomandate e opzionali Nella finestra Context Help, alla quale potete accedere selezionando Help»Show Context Help, i collegamenti necessari sono in grassetto, quelli raccomandati in testo normale e quelli opzionali sono opachi se avete selezionato la visualizzazione Detailed o non compaiono se avete selezionato la visualizzazione Simple. Potete stabilire quali ingressi e uscite sono necessari, raccomandati e opzionali per evitare che gli utenti si dimentichino di effettuare i collegamenti del subVI. Cliccate con il tasto destro del mouse sul riquadro dei connettori e selezionate This Connection Is dal menu rapido. Un contrassegno indica le impostazioni del terminale. Selezionate Required, Recommended o Optional. Quando un ingresso o un’uscita sono necessari, non potete avviare il VI come subVI senza averli collegati correttamente. Quando un ingresso o un’uscita sono raccomandati, potete avviare il VI, ma LabVIEW riporta

LabVIEW Corso Base I

3-10

 National Instruments Corporation


Lezione 3

Creazione di un subVI

un avviso nella finestra Window»Show Error List se avete contrassegnato il riquadro di Show Warnings nella finestra Error List. LabVIEW utilizza il valore di default per ingressi e uscite opzionali non collegati e non riporta avvisi. LabVIEW imposta di default su Recommended gli ingressi e le uscite dei VI che avete creato. Impostate il terminale su necessario solo se il VI deve avere quell’ingresso o quell’uscita per funzionare correttamente. Fate riferimento alla funzione Read File che si trova nella palette Functions»File I/O per vedere gli esempi di ingressi e uscite necessari, raccomandati e opzionali.

 National Instruments Corporation

3-11

LabVIEW Corso Base I


Lezione 3

Creazione di un subVI

Esercitazione 3-2 Obiettivo:

VI Thermometer

Costruire un VI, creando la sua icona e riquadro connettori per utilizzarlo come subVI Completate i passi seguenti per creare un VI che misuri la temperatura utilizzando il sensore di temperatura sulla DAQ Signal Accessory. Il sensore fornisce una tensione proporzionale alla temperatura. Per esempio, se la temperatura è di 23 °C, la tensione di uscita del sensore è di 0.23 V. Potete anche visualizzare la temperatura in Fahrenheit. Misurate la tensione utilizzando il dispositivo DAQ interno al vostro computer e convertite la tensione in una lettura di temperatura. Il sensore è collegato al Canale 0 del dispositivo DAQ.

Pannello frontale 22. Selezionate File»New per aprire un nuovo pannello frontale. (Windows, Sun e HP-UX) Se avete chiuso tutti i VI aperti, cliccate sul pulsante New VI nella finestra di dialogo di LabVIEW.

23. Create l’indicatore del termometro, come mostrato nel seguente pannello frontale

d. Selezionate il termometro sulla palette Controls»Numeric e inseritelo sul pannello frontale. e. Digitate Temperature nell’etichetta e cliccate al di fuori dell’etichetta o cliccate sul pulsante Enter della barra degli strumenti, mostrato a sinistra. f. Cliccate con il tasto destro del mouse sul termometro e selezionate Visible Items»Digital Display dal menu rapido per visualizzare il display digitale per il termometro. 24. Create il controllo dell’interruttore verticale. c. Selezionate l’interruttore Controls»Boolean.

verticale

nella

palette

d. Digitate Temp Scale nell’etichetta e cliccate al di fuori dell’etichetta o cliccate sul pulsante Enter. e. Utilizzate lo strumento Testo, mostrato a sinistra, per inserire un’etichetta libera, deg C, vicino alla posizione TRUE dell’interruttore, come mostrato nel pannello frontale precedente.

LabVIEW Corso Base I

3-12

 National Instruments Corporation


Lezione 3

Creazione di un subVI

f. Inserite un’etichetta libera, deg F, vicino alla posizione FALSE dell’interruttore. 25. Documentate il VI con una descrizione che compaia nella finestra Context Help quando spostate il cursore sull’icona del VI. d. Selezionate File»VI Properties. Compare la finestra di dialogo VI Properties. e. Selezionate Documentation dal menu a tendina Category. f. Digitate la seguente descrizione del VI nel campo VI Description: Questo VI misura la temperatura utilizzando il sensore di temperatura sulla DAQ Signal Accessory.

g. Cliccate sul pulsante OK. 26. Documentate l’indicatore del termometro e il controllo dell’interruttore con una descrizione che compaia nella finestra Context Help quando spostate il cursore sull’oggetto e con le targhette che compaiono sul pannello frontale o sullo schema a blocchi quando spostate il cursore su un oggetto. c. Cliccate con il tasto destro del mouse sull’indicatore del termometro e selezionate Description and Tip dal menu rapido. d. Digitate la seguente descrizione del termometro nel campo Description: Visualizza la misura di temperatura.

e. Digitate temperatura nel campo Tip. f. Cliccate sul pulsante OK. g. Cliccate con il tasto destro del mouse sul controllo dell’interruttore verticale e selezionate Description and Tip dal menu rapido. h. Digitate la seguente descrizione del controllo dell’interruttore verticale nel campo Description: Determina la scala (Fahrenheit o Celsius)da utilizzare nella misura di temperatura.

i. Digitate scala – C o F nel campo Tip. j. Cliccate sul pulsante OK. 27. Selezionate Help»Show Context Help per visualizzare la finestra Context Help. 28. Spostate il cursore sugli oggetti del pannello frontale e sull’icona del VI per visualizzare le descrizioni nella finestra Context Help.

 National Instruments Corporation

3-13

LabVIEW Corso Base I


Lezione 3

Creazione di un subVI

Schema a blocchi 29. Selezionate Window»Show Diagram per visualizzare lo schema a blocchi. 30. Costruite lo schema a blocchi seguente.

c. Inserite il VI Read Voltage che si trova nella palette Functions»User Libraries»Basics I Course. Questo VI legge la tensione sul Canale 0 o sul dispositivo 1. Nota

Se non sono disponibili un dispositivo DAQ e/o un DAQ Signal Accessory, utilizzate ilVI (Demo) Read Voltage che si trova nella palette Functions»User Libraries»Basics I Course invece del VI Read Voltage per simulare il funzionamento del VI Read Voltage. d. Inserite la funzione Multiply situata nella palette Functions»Numeric. Questa funzione moltiplica la tensione che produce il VI Read Voltage per 100.0 per ottenere la temperatura Celsius. e. Selezionate

Functions»Select

a VI, andate su c:\exercises\LV Basics I, cliccate due volte sul VI Convert C to F che avete costruito nell’esercitazione 3-1 e inserite il VI. Questo VI converte la lettura da Celsius in Fahrenheit.

f. Inserite la funzione Select che si trova sulla palette Functions»Comparison. Questa funzione produce il valore di temperatura in Fahrenheit (FALSE) o in Celsius (TRUE), a seconda del valore di Temp Scale. g. Cliccate con il tasto destro del mouse sul terminale device del VI Read Voltage, selezionate Create»Constant, digitate 1 e premete il tasto <Enter> per creare una costante numerica. h. Cliccate con il tasto destro del mouse sul terminale y della funzione Multiply, selezionate Create»Constant, digitate 100 e premete il tasto <Enter> per creare un’altra costante numerica. i. Cliccate con il tasto destro del mouse sul terminale channel del VI Read Voltage, selezionate Create»Constant, digitate 0 e premete il tasto <Shift-Enter> per creare una costante stringa. j. Utilizzate lo strumento Posiziona, mostrato a sinistra, per inserire le icone come indicato nel precedente schema a blocchi e

LabVIEW Corso Base I

3-14

 National Instruments Corporation


Lezione 3

Creazione di un subVI

utilizzate lo strumento Collega, mostrato a sinistra, per collegarle insieme. Suggerimento

Per individuare i terminali sui nodi, cliccate con il tasto destro del mouse sull’icona e selezionate Visible Items»Terminal dal menu rapido per visualizzare il riquadro dei connettori. 31. Visualizzate il pannello frontale cliccandoci sopra o selezionando Window»Show Panel. 32. Cliccate sul pulsante Continuous Run, mostrato a sinistra, per mandare in esecuzione continua il VI. 33. Mettete il dito sul sensore di temperatura e notate l’aumento di temperatura. 34. Cliccate nuovamente sul pulsante Continuous Run per fermare il VI. 35. Create l’icona seguente, per poter utilizzare il VI Temperature come subVI.

a. Cliccate con il tasto destro del mouse sull’icona nell’angolo superiore destro del pannello frontale e selezionate Edit Icon dal menu rapido. Compare la finestra di dialogo Icon Editor. b. Cliccate due volte sullo strumento Seleziona, mostrato a sinistra, sul lato sinistro della finestra di dialogo Icon Editor per selezionare l’icona di default. c. Premete il tasto <Delete> per rimuovere l’icona di default. d. Cliccate due volte sullo strumento Rettangolo, mostrato a sinistra, per ridisegnare il bordo. e. Utilizzate lo strumento Matita, mostrato a sinistra, per disegnare un’icona che rappresenti il termometro. f. Usate gli strumenti In primo piano e Riempi per colorare di rosso il termometro. Nota

Per disegnare linee rette orizzontali o verticali, premete il tasto <Shift> mentre utilizzate lo strumento Matita per trascinare il cursore. g. Cliccate due volte sullo strumento Testo, mostrato a sinistra, e modificate il font scegliendo Small Fonts.

 National Instruments Corporation

3-15

LabVIEW Corso Base I


Lezione 3

Creazione di un subVI

h. Selezionate icona B & W e quindi 256 Colors nel campo Copy from per creare un’icona in bianco e nero, che LabVIEW utilizza per la stampa a meno che non abbiate una stampante a colori. i. Quando l’icona è completa, cliccate sul pulsante OK. L’icona compare nell’angolo superiore destro del pannello frontale. 36. Cliccate con il tasto destro del mouse e selezionate Show Connector dal menu rapido e assegnate i terminali all’interruttore e al termometro. a. Cliccate sul terminale sinistro del riquadro dei connettori. b. Cliccate sul controllo Temp Scale. Il terminale di sinistra diventa verde. c. Cliccate sul terminale destro del riquadro dei connettori. d. Cliccate sull’indicatore Temperature. Il terminale di destra diventa arancione. e. Cliccate su un’area libera del pannello frontale. 37. Salvate il VI, perché lo utilizzerete più avanti nel corso. a. Selezionate File»Save. b. Andate su c:\exercises\LV Basics I. c. Digitate Thermometer.vi nella finestra di dialogo. d. Cliccate sul pulsante Save. 38. Selezionate File»Close per chiudere il VI.

Fine dell’esercitazione 3-2

LabVIEW Corso Base I

3-16

 National Instruments Corporation


Lezione 3

Creazione di un subVI

D. Creazione di un subVI da sezioni di un VI Potete semplificare lo schema a blocchi di un VI convertendo sezioni dello schema a blocchi in subVI. Convertite una sezione di un VI in subVI utilizzando lo strumento Posiziona per selezionare la sezione dello schema a blocchi che volete convertire e selezionate Edit»Create SubVI. Un’icona del nuovo subVI sostituisce la sezione prescelta dello schema a blocchi. LabVIEW crea controlli e indicatori per il nuovo subVI e collega il subVI ai fili esistenti. L’esempio seguente mostra come convertire una selezione in un subVI.

Nota

Non potete convertire una sezione con più di 28 tra ingressi e uscite, perché 28 è il massimo numero di terminali disponibile sul riquadro dei connettori.

 National Instruments Corporation

3-17

LabVIEW Corso Base I


Lezione 3

Creazione di un subVI

Sommario, trucchi e consigli

LabVIEW Corso Base I

Ÿ

Un VI in un altro VI viene chiamato subVI. L’utilizzo di subVI vi aiuta a gestire modifiche e a verificare lo schema a blocchi rapidamente.

Ÿ

Dopo aver costruito un pannello frontale e uno schema a blocchi di un VI, costruite l’icona e il riquadro dei connettori per poter utilizzare un VI come subVI.

Ÿ

Il riquadro dei connettori è un insieme di terminali che corrisponde ai controlli e agli indicatori di quel VI. Definite i collegamenti assegnando un controllo o un indicatore del pannello frontale ad ogni terminale del riquadro dei connettori.

Ÿ

Create icone personalizzate per sostituire l’icona di default cliccando due volte sull’icona nel riquadro superiore destro del pannello frontale.

Ÿ

Nella finestra di dialogo Icon Editor, cliccate due volte sullo strumento Testo per selezionare un font differente.

Ÿ

Potete stabilire quali ingressi e uscite sono necessari, raccomandati ed opzionali per evitare che gli utenti si dimentichino di collegare parte del subVI cliccando con il tasto destro del mouse su un terminale del riquadro dei connettori e selezionando This Connection Is dal menu rapido.

Ÿ

Documentate il VI selezionando File»VI Properties e quindi Documentation dal menu a tendina Category. Quando spostate il cursore su un’icona di un VI, la finestra Context Help visualizza la descrizione e mostra quali terminali sono necessari, raccomandati ed opzionali.

Ÿ

Aggiungete descrizioni ed etichette ai controlli e agli indicatori cliccandoci sopra con il tasto destro del mouse e selezionando Description and Tip dal menu rapido. Quando spostate il cursore sui controlli e sugli indicatori, la finestra Context Help visualizza queste descrizioni.

Ÿ

Convertite una sezione di un VI in un subVI utilizzando lo strumento Posiziona per selezionare la parte dello schema a blocchi che intendete convertire e selezionate Edit»Create SubVI.

3-18

 National Instruments Corporation


Lezione 3

Creazione di un subVI

Esercizi aggiuntivi 3-3

Costruite un VI che calcoli la pendenza tra due punti di coordinate X-Y, come mostrato nei seguenti pannello frontale e schema a blocchi.

Documentate in dettaglio il VI e create l’icona e il riquadro dei connettori. Scegliete il calcolo della pendenza e quindi Edit»Create SubVI per creare un subVI. Salvate il VI come Slope.vi.

 National Instruments Corporation

3-19

LabVIEW Corso Base I


Lezione 3

Creazione di un subVI

Note

LabVIEW Corso Base I

3-20

ď›™ National Instruments Corporation


Lezione 4 Cicli e grafici Le strutture sono rappresentazioni grafiche dei cicli e delle dichiarazioni dei linguaggi di programmazione testuali. Utilizzate le strutture nello schema a blocchi per ripetere blocchi di codice ed eseguire codice in maniera condizionata o in un ordine specifico. LabVIEW prevede cinque strutture – il Ciclo While, il Ciclo For, la Struttura Case, la Struttura Sequence e il Formula Node. Questa lezione vi introduce al Ciclo While, al Ciclo For, ai grafici e ai registri a scorrimento.

Imparerete: L. Ad utilizzare un Ciclo While M. A visualizzare i dati in un grafico N. A conoscere e ad utilizzare un registro a scorrimento O. Ad utilizzare un ciclo For

ď›™ National Instruments Corporation

4-1

LabVIEW Corso Base I


Lezione 4

Cicli e grafici

A. Cicli While In maniera analoga ad un Ciclo Do o ad un Ciclo Repeat-Until nei linguaggi di programmazione testuali, un Ciclo While, mostrato a sinistra, esegue un sottoprogramma fino a quando viene soddisfatta una condizione. Il Ciclo While si trova nella palette Functions»Structures. Utilizzate il cursore per trascinare un rettangolo di selezione intorno alla sezione dello schema a blocchi che volete ripetere. Quando rilasciate il pulsante del mouse, un’area delimitata dal Ciclo While racchiude la sezione che avete selezionato. Aggiungete oggetti dello schema a blocchi al Ciclo While trascinandoli e rilasciandoli all’interno del Ciclo While. Il Ciclo While esegue lo schema a blocchi contenuto al suo interno fino a quando il terminale condizionale, un terminale d’ingresso, riceve uno specifico valore booleano. Il comportamento e l’aspetto del terminale condizionale è Continue If True, mostrato a sinistra. Quando un terminale condizionale è Continue If True, il Ciclo While esegue il sottoprogramma fino a quando il terminale condizionale riceve un valore FALSE. Il terminale d’iterazione (un terminale di uscita), mostrato a sinistra, contiene un numero completo di iterazioni. Il conteggio delle iterazioni parte sempre da zero. Durante la prima iterazione, il terminale d’iterazione fornisce 0. Nello schema a blocchi seguente, il Ciclo While è in esecuzione fino a quando l’uscita del subVI è inferiore a 10.00 o il controllo Enable è FALSE. La funzione fornisce il valore TRUE solo se entrambi gli ingressi sono TRUE. Altrimenti fornisce FALSE.

SubVI

Potete modificare il comportamento e l’aspetto del terminale condizionale cliccando con il tasto destro del mouse sul terminale o sulla cornice del Ciclo While e selezionando Stop If True, mostrato a sinistra. Potete anche utilizzare lo strumento Modifica per cliccare sul terminale condizionale per modificare la condizione. Quando un terminale condizionale è Stop If True, il Ciclo While è in esecuzione fino a quando il terminale condizionale riceve un valore TRUE, come viene mostrato nello schema a blocchi seguente.

LabVIEW Corso Base I

4-2

 National Instruments Corporation


Lezione 4

Cicli e grafici

SubVI

Il Ciclo While è in esecuzione finché l’uscita del subVI rimane maggiore o uguale a 10.00 e il controllo Enable è TRUE.

 National Instruments Corporation

4-3

LabVIEW Corso Base I


Lezione 4

Cicli e grafici

B. Grafici (Waveform Chart) Il grafico è un particolare indicatore numerico che visualizza una o più curve. Il grafico si trova nella palette Controls»Graph. I grafici possono visualizzare curve singole o multiple. Il pannello frontale seguente mostra un esempio di un grafico con più rappresentazioni.

I grafici utilizzano tre modi differenti per riportare i dati, come mostrato nel pannello frontale seguente. Cliccate con il tasto destro del mouse sul grafico e selezionate Advanced»Update Mode dal menu rapido. Selezionate Strip Chart, Scope Chart o Sweep Chart. La modalità di default è Strip Chart.

Un grafico strip mostra i dati che scorrono continuamente da sinistra a destra lungo il grafico. Un grafico scope mostra un insieme di dati per volta, come un impulso o un’onda, facendoli scorrere da sinistra a destra. Un grafico sweep è simile ad un display EKG. Un grafico sweep lavora in maniera analoga ad un oscilloscopio eccetto il fatto che mostra i dati più vecchi sulla destra e quelli nuovi sulla sinistra di una linea di separazione verticale. Sia la modalità scope che quella sweep hanno un tracciamento dei dati simile a quello degli oscilloscopi. Siccome è meno dispendioso ritracciare un grafico, i grafici scope e sweep visualizzano i dati in maniera significativamente più rapida rispetto al grafico strip.

LabVIEW Corso Base I

4-4

 National Instruments Corporation


Lezione 4

Cicli e grafici

Collegamento dei grafici Potete collegare un’uscita scalare direttamente ad un grafico. Il tipo di dato nel terminale di grafico seguente si adatta al tipo di dato in ingresso.

I grafici possono visualizzare più andamenti. Unite diversi andamenti utilizzando la funzione Bundle che si trova nella palette Functions»Cluster. Nello schema a blocchi seguente, la funzione Bundle unisce le uscite dei tre VI per visualizzarle sul grafico.

Il terminale del grafico si modifica per adattarsi all’uscita della funzione Bundle. Per aggiungere ulteriori andamenti, utilizzate lo strumento Posiziona per ridimensionare la funzione Bundle.

 National Instruments Corporation

4-5

LabVIEW Corso Base I


Lezione 4

Cicli e grafici

Esercitazione 4-1

VI Temperature Monitor

Obiettivo: Utilizzare un Ciclo While e un grafico per acquisire e visualizzare dati Completate i passi seguenti per costruire un VI che misuri la temperatura e la visualizzi sul grafico.

Pannello frontale 40. Aprite un nuovo VI. 41. Costruite il seguente pannello frontale.

a. Selezionate l’interruttore verticale sulla palette Controls»Boolean e inseritelo nel pannello frontale. Utilizzerete l’interruttore per arrestare l’acquisizione. b. Digitate Power nell’etichetta e cliccate al di fuori dell’etichetta o sul pulsante Enter della barra degli strumenti, mostrato a sinistra. c. Selezionate un grafico sulla palette Controls»Graph e disponetelo sul pannello frontale. Il grafico visualizzerà la temperatura in tempo reale. d. Digitate Temperature History nell’etichetta e cliccate al di fuori dell’etichetta o sul pulsante Enter. e. La legenda del grafico lo etichetta con Plot 0. Utilizzate lo strumento Testo per cliccare tre volte su Plot 0 nella legenda del grafico, digitate Temp e cliccate al di fuori dell’etichetta o sul pulsante Enter per cambiare il contenuto della legenda. f. Il sensore di temperatura misura la temperatura ambiente. Utilizzate lo strumento Testo per cliccare due volte su 10.0 dell’asse y, digitate 90 e cliccate al di fuori dell’etichetta o sul pulsante Enter per cambiare la scala del grafico. g. Sostituite il valore –10.0 sull’asse y con 70. h. Etichettate l’asse y con Temp (Deg F) e l’asse x con Time (sec).

LabVIEW Corso Base I

4-6

 National Instruments Corporation


Lezione 4

Cicli e grafici

Schema a blocchi 42. Selezionate Window»Show Diagram per visualizzare lo schema a blocchi. 43. Includete i due terminali nel Ciclo While, come mostrato nello schema a blocchi seguente.

h. Selezionate il Ciclo While sulla palette Functions»Structures. i. Cliccate e trascinate un rettangolo di selezione intorno ai due terminali. j. Utilizzate lo strumento Posiziona per ridimensionare il ciclo, se necessario. 44. Selezionate Functions»Select a VI, andate su c:\exercises\LV Basics I, cliccate due volte sul VI Thermometer, che avete realizzato nell’esercitazione 3-2 e inserite il VI nello schema a blocchi. Questo VI fornisce una misura di temperatura dal sensore di temperatura. 45. Collegate gli oggetti dello schema a blocchi come mostrato nello schema a blocchi precedente. Nota

Per misurare la temperatura in Celsius, collegate una costante booleana che si trova nella palette Functions»Boolean all’ingresso Temp Scale del VI Termometer. Modificate le scale sui grafici degli esercizi seguenti per portarle in un intervallo tra 20 e 32 invece che fra 70 e 90. 46. Salvate il VI come Temperature utilizzerete più avanti nel corso.

Monitor.vi, perché lo

47. Visualizzate il pannello frontale cliccandoci sopra o selezionando Window»Show Panel. 48. Utilizzate lo strumento Modifica per cliccare sull’interruttore verticale e portarlo nella posizione ON. 49. Avviate il VI. La sezione dello schema a blocchi all’interno della cornice del Ciclo While, o sottoprogramma, viene eseguita finché la condizione specificata rimane TRUE. Per esempio, mentre l’interruttore è on

 National Instruments Corporation

4-7

LabVIEW Corso Base I


Lezione 4

Cicli e grafici

(TRUE), il VI Thermometer prende e restituisce una nuova misura e la visualizza sul grafico. 50. Cliccate sull’interruttore verticale per arrestare l’acquisizione. La condizione è FALSE e il ciclo si arresta. 51. Dimensionate e personalizzate gli assi X e Y del grafico. a. Cliccate con il tasto destro del mouse sul grafico e selezionate Y Scale»Formatting dal menu rapido. Compare la seguente finestra di dialogo.

b. Cliccate sull’icona Scale Style e selezionate stili differenti per l’asse y. Potete anche selezionare diverse modalità di mappatura, opzioni di griglia, fattori di scala, formati e precisioni. c. Selezionate le opzioni mostrate nella finestra di dialogo precedente e cliccate sul pulsante OK. 52. Cliccate con il tasto destro del mouse sul grafico e selezionate Data Operations»Clear Chart dal menu rapido per cancellare il buffer del display e riazzerare il grafico. Se il VI è in esecuzione, potete selezionare Clear Chart dal menu rapido.

Modifica delle azioni meccaniche e degli interruttori Booleani Ogni volta che avviate il VI, dovete prima portare su on l’interruttore verticale e quindi cliccare sul pulsante Run. Potete modificare l’azione meccanica dei controlli booleani selezionando una delle seguenti opzioni. Ÿ

LabVIEW Corso Base I

Switch When Pressed – Modifica il valore del controllo ogni volta che cliccate sul controllo con lo strumento Modifica. L’azione è simile a quella di un interruttore di una lampada da soffitto. Quanto frequentemente il VI legge il controllo non influenza questa azione.

4-8

 National Instruments Corporation


Lezione 4

Cicli e grafici

Ÿ

Switch When Released – Modifica il valore del controllo solo dopo che avete rilasciato il pulsante del mouse durante un click nella cornice grafica del controllo. Quanto frequentemente il VI legge il controllo non influenza questa azione.

Ÿ

Swith Until Released – Modifica il valore del controllo quando cliccate sul controllo e mantiene il nuovo valore fino a quando rilasciate il pulsante del mouse, e a questo punto il controllo ritorna al suo valore originale. L’azione è simile a quella di un cicalino. Quanto frequentemente il VI legge il controllo non influenza questa azione.

Ÿ

Latch When Pressed – Modifica il valore del controllo quando cliccate sul controllo e mantiene il nuovo valore fino a quando il VI lo legge una volta, a quel punto il controllo ritorna al suo valore di default. Questa azione avviene se continuate a tenere premuto il pulsante del mouse. Questa azione è simile a quella di un interruttore ed è utile per arrestare i Cicli While o per consentire che il VI compia un’azione solo una volta quando avete impostato il controllo.

Ÿ

Latch When Released – Modifica il valore del controllo solo dopo che avete rilasciato il pulsante del mouse. Quando il VI legge il valore una volta, il controllo ritorna al suo vecchio valore. Quest’azione garantisce almeno un nuovo valore.

Ÿ

Latch Until Released – Modifica il valore del controllo quando cliccate sul controllo e mantiene il valore fino a quando il VI legge il valore una volta o fino a quando rilasciate il pulsante del mouse, qualunque sia l’ultimo valore.

53. Modificate l’interruttore verticale per fare in modo che la temperatura sia graficata ogni volta che avviate il VI. a. Fermate il VI se si trova in esecuzione. b. Utilizzate lo strumento Modifica per cliccare sull’interruttore verticale e portarlo sulla posizione ON. c. Cliccate con il tasto destro del mouse sull’interruttore e selezionate Data Operations»Make Current Value Default dal menu rapido. Questo imposta la posizione ON come valore di default. d. Cliccate con il tasto destro del mouse sull’interruttore e selezionate Mechanical Action»Latch When Pressed dal menu rapido. 54. Avviate il VI. 55. Utilizzate lo strumento Modifica per cliccare sull’interruttore verticale per fermare l’acquisizione. L’interruttore si porta sulla posizione OFF e torna ad ON dopo che il terminale condizionale ha letto il suo valore.

 National Instruments Corporation

4-9

LabVIEW Corso Base I


Lezione 4

Cicli e grafici

Aggiunta delle temporizzazioni Quando il VI è in esecuzione, il Ciclo While viene eseguito il più rapidamente possibile. Completate i passi seguenti per prendere dati a determinati intervalli, ad esempio ogni mezzo secondo, come mostrato nello schema a blocchi seguente.

a. Inserite la funzione Wait Until Next ms Multiple che si trova nella palette Functions»Time & Dialog. Questa funzione garantisce che ogni iterazione avvenga ogni mezzo secondo (500 ms). b. Cliccate con il tasto destro del mouse sull’ingresso millisecond multiple della funzione Wait Until Next ms Multiple, selezionate Create»Constant dal menu rapido, digitate 500 e premete il tasto <Enter>. La costante numerica definisce un’attesa di 500 ms e quindi il ciclo viene eseguito ogni mezzo secondo. c. Sul pannello frontale, cliccate con il tasto destro del mouse sul grafico e selezionate X Scale»Formatting dal menu rapido. Portate il valore dX a 0.5 poiché avete aggiunto un’attesa di 500 ms tra le iterazioni del ciclo. 56. Salvate il VI, perché lo utilizzerete più avanti nel corso. 57. Avviate il VI. 58. Provate valori differenti della costante numerica e avviate nuovamente il VI. 59. Chiudete il VI.

Fine dell’esercitazione 4-1

LabVIEW Corso Base I

4-10

 National Instruments Corporation


Lezione 4

Esercitazione 4-2

Cicli e grafici

VI Random Signal (opzionale)

Obiettivo: Aggiungere temporizzazioni al grafico utilizzando un controllo numerico. Completate i passi seguenti per creare un VI che genera dati casuali e li visualizza su un grafico nella modalità di aggiornamento scope. 39. Inserite un controllo potenziometrico sul pannello frontale per regolare la frequenza del ciclo tra 0 e 2 secondi, come mostrato nel pannello frontale seguente.

40. Inserite un interruttore per arrestare il VI. 41. Configurate l’interruttore in maniera tale da evitare di doverlo posizionare su on ogni volta che avviate il VI. 42. Costruite il pannello frontale precedente utilizzando i seguenti consigli: Ÿ

Cliccate con il tasto destro del mouse sul grafico e selezionate Visible Items»Plot Legend dal menu rapido per nascondere la legenda.

Ÿ

Cliccate con il tasto destro del mouse sull’etichetta Time e selezionate Visible Scale Label dal menu rapido per rimuovere l’etichetta della scala dell’asse x.

43. Costruite lo schema a blocchi utilizzando i seguenti consigli: Ÿ

Utilizzate la funzione Random Number (0-1) che si trova nella palette Functions»Numeric per generare dati.

Ÿ

Moltiplicate il terminale potenziometrico per 1000 per convertire i secondi in millisecondi. Utilizzate questo valore come ingresso della funzione Wait Until Next ms Multiple che si trova nella palette Functions»Time & Dialog.

 National Instruments Corporation

4-11

LabVIEW Corso Base I


Lezione 4

Cicli e grafici

Ÿ

Cliccate con il tasto destro del mouse sul grafico e selezionate Advanced»Update Mode dal menu rapido per impostare la modalità del grafico.

44. Salvate il VI come Random Signal.vi. 45. Avviate il VI. 46. Modificate il valore del controllo Loop Delay mentre il VI è in esecuzione. 47. Chiudete il VI.

Fine dell’esercitazione 4-2

LabVIEW Corso Base I

4-12

 National Instruments Corporation


Lezione 4

Esercitazione 4-3

Cicli e grafici

VI Auto Match

Obiettivo: Passare i dati da un Ciclo While all’esterno. Completate i passi seguenti per creare un VI che generi numeri casuali fino a quando il numero generato corrisponde ad un numero specificato. Il terminale contatore del ciclo registra il numero di iterazioni prima che si verifichi la corrispondenza.

Pannello frontale 1. Aprite un nuovo pannello frontale. 2. Costruite il seguente pannello frontale e modificate i controlli e gli indicatori come mostrato e descritto in quest’esercitazione.

Il controllo Number to Match definisce il numero con il quale si vuole trovare la corrispondenza. L’indicatore Current Number visualizza il numero casuale corrente. L’indicatore # of iterations visualizza il numero di iterazioni prima che si arrivi a trovare un numero coincidente.

Impostazione del Data Range Utilizzate l’opzione Data Range per evitare che l’utente selezioni un valore che non è compatibile con un intervallo o un incremento. Potete ignorare l’errore o forzarlo nell’intervallo. Completate i passi seguenti per impostare l’intervallo tra 0 e 10,000 con un incremento di 1 e un valore di default di 50. 3. Cliccate con il tasto destro del mouse sul controllo Number to match e selezionate Data Range dal menu rapido. Compare la finestra di dialogo Data Range. 4. Rimuovete la selezione dal riquadro Use Defaults. 5. Selezionate le opzioni come mostrato nella seguente finestra di dialogo.

 National Instruments Corporation

4-13

LabVIEW Corso Base I


Lezione 4

Cicli e grafici

6. Cliccate sul pulsante OK.

Modifica del numero di cifre di precisione Di default, LabVIEW visualizza i controlli e gli indicatori numerici con notazione decimale con due cifre decimali, come 3.14. Utilizzate l’opzione Format & Precision per modificare la precisione o per visualizzare i controlli e gli indicatori numerici con notazione scientifica, ingegneristica o ore/minuti/secondi. Completate i passi seguenti per portare la precisione a 0. 7. Cliccate con il tasto destro del mouse sull’indicatore Current Number e selezionate Format & Precision dal menu rapido. Compare la finestra di dialogo Format & Precision.

8. Digitate 0 nella casella Digits of Precision e cliccate sul pulsante OK. 9. Ripetete i passi 7 e 8 per l’indicatore # of iterations.

Schema a blocchi 10. Costruite il seguente schema a blocchi.

LabVIEW Corso Base I

4-14

 National Instruments Corporation


Lezione 4

Cicli e grafici

a. Inserite la funzione Random Number (0-1) che si trova nella palette Functions»Numeric. Questa funzione produce un numero casuale tra 0 e 1. b. Inserite la funzione Multiply che si trova nella palette Functions»Numeric. Questa funzione moltiplica il numero casuale per 10000. c. Cliccate con il tasto destro del mouse sul terminale y della funzione Multiply, selezionate Create»Constant dal menu rapido, digitate 10000 e premete il tasto <Enter> per creare una costante numerica. d. Inserite la funzione Round To Nearest che si trova nella palette Functions»Numeric. Questa funzione arrotonda il numero casuale tra 0 e 10000 all’intero più vicino. e. Inserite la funzione Not Equal? Che si trova nella palette Functions»Comparison. Questa funzione confronta il numero casuale con Number to Match e restituisce TRUE se i numeri non sono uguali; altrimenti fornisce FALSE. f. Disponete un Ciclo While Functions»Structures.

che

si

trova

nella

palette

Il quadrato blu che compare sulla cornice del Ciclo While viene chiamato tunnel. Il tunnel fornisce dati all’interno e all’esterno delle strutture. I dati fuoriescono da un ciclo quando il ciclo ha completato l’esecuzione. Quando un tunnel passa i dati all’interno del ciclo, il ciclo viene eseguito solo dopo l’arrivo dei dati al tunnel. Il ciclo rimane in esecuzione finché non c’è coincidenza. Cioè la funzione Not Equal? restituisce TRUE se i due numeri non coincidono. Ogni volta che viene eseguito il ciclo, il terminale delle iterazioni si incrementa di uno. Il conteggio delle iterazioni esce dal ciclo al termine. Questo valore viene incrementato di uno fuori dal ciclo perché il conteggio parte da 0. g. Inserite la funzione Increment che si trova nella palette Functions»Numeric. Questa funzione aggiunge 1 al conteggio del Ciclo While. Un punto di coercizione grigio compare sul terminale di uscita ad indicare che LabVIEW ha forzato la rappresentazione numerica del terminale di iterazione per adattarla alla rappresentazione numerica del terminale di uscita. Fate riferimento alla sezione D, Cicli For, per maggiori informazioni sulla conversione numerica. 11. Salvate il VI come Auto Match.vi. 12. Visualizzate il pannello frontale e modificate il numero in Number to Match. 13. Avviate il VI. Modificate il numero in Number to Match e avviate nuovamente il VI.

 National Instruments Corporation

4-15

LabVIEW Corso Base I


Lezione 4

Cicli e grafici

Current Numbers si aggiorna ad ogni iterazione del ciclo perché si trova all’interno del ciclo. # of iterations si aggiorna al termine perché si trova all’esterno del ciclo. 14. Per vedere come il VI aggiorna gli indicatori, abilitate l’esecuzione evidenziata. Sullo schema a blocchi, cliccate sul pulsante Highlight Execution, mostrato a sinistra, per abilitare l’esecuzione evidenziata. L’esecuzione evidenziata anima il flusso dei dati attraverso lo schema a blocchi e quindi potete vedere come viene generato ogni numero. 15. Modificate il valore di Number to Match inserendo un numero che si trova al di fuori dell’intervallo, che è tra 0 e 10000 con un incremento di 1. 16. Avviate il VI. LabVIEW forza il valore esterno all’intervallo al valore più vicino nell’intervallo specificato. 17. Chiudete il VI.

Fine dell’esercitazione 4-3

LabVIEW Corso Base I

4-16

 National Instruments Corporation


Lezione 4

Cicli e grafici

C. Registri a scorrimento Utilizzate i registri a scorrimento nei Cicli For e While per trasferire valori da un’iterazione del ciclo alla successiva. Create un registro a scorrimento cliccando con il tasto destro del mouse sul bordo sinistro o su quello destro di un ciclo e selezionando Add Shift Register dal menu rapido. Un registro a scorrimento appare come una coppia di terminali, mostrati a sinistra, con direzione opposta l’uno rispetto all’altro sui lati verticali della cornice del ciclo. Il terminale di destra contiene una freccia verso l’alto e memorizza i dati alla fine dell’iterazione. LabVIEW trasferisce i dati collegati al lato destro del registro alla successiva iterazione. Un registro a scorrimento trasferisce un qualsiasi tipo di dato e lo trasforma automaticamente con il tipo di dato del primo oggetto collegato al registro a scorrimento. I dati che riportate ai terminali di ciascun registro a scorrimento devono essere dello stesso tipo. Potete creare registri a scorrimento multipli su una struttura e potete avere più di un terminale sinistro per avere memoria di più valori precedenti, come mostrato nell’illustrazione seguente. 1

2 Valore iniziale

Valore iniziale

3 Valore Nuovo precedente valore

Nuovo valore

4 Valore Nuovo Nuovo precedente valore valore

Potete utilizzare i registri a scorrimento per ricordare i valori dalle iterazioni precedenti. Questa tecnica è utile per effettuare la media di più punti. Per configurare un registro a scorrimento per fare in modo che trasferisca i valori alla successiva iterazione, cliccate con il tasto destro del mouse sul terminale di sinistra e selezionate Add Element dal menu rapido. Per esempio, se aggiungete due elementi al terminale di sinistra, i valori delle ultime tre iterazioni passano all’iterazione successiva.

 National Instruments Corporation

4-17

LabVIEW Corso Base I


Lezione 4

Cicli e grafici

Inizializzazione dei registri a scorrimento Per inizializzare un registro a scorrimento, collegate un valore qualsiasi dall’esterno del ciclo al terminale di sinistra. Se non inizializzate il registro, il ciclo utilizza il valore scritto nel registro quando l’ultimo ciclo è stato eseguito o il valore di default per il tipo di dato se il ciclo non è mai stato eseguito. Per esempio, se il dato del registro a scorrimento è di tipo booleano, il valore iniziale è FALSE. Analogamente, se il dato del registro a scorrimento è numerico, il valore iniziale è 0. Utilizzate un ciclo con un registro a scorrimento non inizializzato per avviare il VI ripetute volte in maniera tale che ogni volta che parte il VI, l’uscita iniziale del registro a scorrimento è l’ultimo valore dell’esecuzione precedente. Lasciate scollegato l’ingresso al terminale sinistro del registro di scorrimento per un registro di scorrimento non inizializzato per conservare l’informazione tra esecuzioni successive di un VI. 1

3

4

LabVIEW Corso Base I

2

7

5

7

5

Valore iniziale 0

Valore iniziale 7

4-18

Valore iniziale 5

Valore iniziale 5

7

7

 National Instruments Corporation


Lezione 4

Esercitazione 4-4

Cicli e grafici

VI Shift Register Example

Obiettivo: Utilizzare i registri a scorrimento per accedere ai valori delle iterazioni precedenti.

Pannello frontale 1. Aprite il VI Shift Register Example. Il seguente pannello frontale è già realizzato.

L’indicatore X(i) visualizza il valore corrente , che scorre al terminale sinistro all’inizio dell’iterazione successiva. L’indicatore X(i-1) visualizza il valore dell’iterazione precedente, l’indicatore X(i-2) visualizza il valore di due iterazioni prima e così via.

Schema a blocchi 2. Visualizzate lo schema a blocchi seguente ed assicuratevi che sia il panello frontale che lo schema a blocchi siano visibili. Se necessario, chiudete o spostate le palette Tools e Functions.

Lo 0 collegato ai terminali di sinistra inizializza gli elementi del registro a scorrimento a 0. 3. Cliccate sul pulsante Highlight Execution, mostrato a sinistra, per abilitare l’esecuzione evidenziata.

 National Instruments Corporation

4-19

LabVIEW Corso Base I


Lezione 4

Cicli e grafici

4. Avviate il VI e seguite i cerchietti che si spostano lungo i fili. Se i cerchietti si muovono troppo rapidamente, cliccate sui pulsanti Pause e Step Over, mostrati a sinistra, per rallentare l’esecuzione. Ad ogni iterazione del Ciclo While, il VI fa passare i valori precedenti attraverso i terminali di sinistra del registro a scorrimento. Ogni iterazione del ciclo aggiunge 5 al dato corrente, X(i). Questo valore passa al terminale di sinistra, X(i-1), all’inizio dell’iterazione successiva. I valori al terminale di sinistra si incanalano in basso verso i terminali. Questo VI mantiene gli ultimi tre valori. Per mantenere più valori, aggiungete elementi al terminale di sinistra del registro a scorrimento cliccando con il tasto destro del mouse sul terminale di sinistra e selezionando Add Element dal menu rapido. 5. Chiudete il VI. Non salvate i cambiamenti.

Fine dell’esercitazione 4-4

LabVIEW Corso Base I

4-20

 National Instruments Corporation


Lezione 4

Esercitazione 4-5

Cicli e grafici

VI Temperature Running Average

Obiettivo: Utilizzare i registri a scorrimento per ottenere una media continua.

Completate i passi seguenti per modificare il VI Temperature Monitor per effettuare una media sulle ultime tre misure di temperatura e visualizzare la media su un grafico.

Pannello frontale 1. Aprite il VI Temperature Monitor, che avete realizzato nell’esercitazione 4-1. 2. Selezionate FileSave As e date un nuovo nome al VI Temperature Running Average.vi.

Schema a blocchi 3. Visualizzate lo schema a blocchi. 4. Cliccate con il tasto destro del mouse sul bordo sinistro o quello destro del Ciclo While e selezionate Add Shift Register dal menu rapido per creare un registro a scorrimento. 5. Cliccate con il tasto destro del mouse sul terminale di sinistra del registro a scorrimento e selezionate Add Element dal menu rapido per aggiungere un elemento al registro a scorrimento. 6. Modificate lo schema a blocchi nel modo seguente.

a. Premete il tasto <Ctrl> mentre cliccate sul VI Thermometer e lo trascinate al di fuori del Ciclo While per creare una copia del subVI. (Macintosh) Premete il tasto <Option>. (Sun) Premete il tasto <Meta>. (HP-UX e Linux) Premete il tasto <Alt>.

Il VI Thermometer fornisce una misura di temperatura dal sensore di temperatura e inizializza i registri a scorrimento di sinistra prima che il ciclo si avvii.

ď›™ National Instruments Corporation

4-21

LabVIEW Corso Base I


Lezione 4

Cicli e grafici

b. Inserite la funzione Compound Arithmetic che si trova nella palette Functions»Numeric. Questa funzione fornisce la somma della temperatura corrente e delle due letture di temperatura precedenti. Utilizzate lo strumento Posiziona per ridimensionare la funzione per avere tre terminali a sinistra, come mostrato a sinistra. c. Inserite la funzione Divide che si trova nella palette ultime tre letture di temperatura. d. Cliccate con il tasto destro del mouse sul terminale y della funzione Divide, selezionate Create»Constant, digitate 3 e premete il tasto <Enter>. e. Utilizzate lo strumento Testo per cliccare due volte sulla costante numerica collegata alla funzione Wait Until Next ms Multiple, digitate 500 e premete il tasto <Enter>. 7. Salvate il VI perché lo utilizzerete più avanti nel corso. 8. Avviate il VI. Durante ogni iterazione del Ciclo While, il VI Thermometer prende una misura di temperatura. Il VI aggiunge questo valore alle ultime due misure memorizzate nei terminali di sinistra del registro a scorrimento. Il VI divide il risultato per tre per trovare la media delle tre misure, la misura corrente più le due precedenti. Il VI visualizza la media su un grafico. Notate che il VI inizializza il registro a scorrimento con una misura di temperatura. 9. Inserite la funzione Bundle che si trova nella palette Functions»Cluster per visualizzare sia la media che la misura di temperatura corrente sullo stesso grafico. Questa funzione raccoglie la media e la temperatura corrente per la stampa sul grafico.

10. Salvate il VI ed avviatelo. Il VI visualizza due andamenti sul grafico. Questi sono sovrapposti. Quindi hanno la stessa scala verticale.

LabVIEW Corso Base I

4-22

 National Instruments Corporation


Lezione 4

Cicli e grafici

Personalizzazione dei grafici Eseguite i passi seguenti per personalizzare il grafico come indicato nel seguente pannello frontale. Potete visualizzare una legenda del grafico, una legenda della scala, una palette del grafico, un display digitale, una barra di scorrimento ed un buffer. Di default un grafico visualizza la legenda del grafico.

11. Personalizzate l’asse y. a. Utilizzate lo strumento Testo per cliccare due volte su 70.0 dell’asse y, digitate 75.0 e premete il tasto <Enter>. b. Utilizzate lo strumento Testo per cliccare due volte sul secondo numero dal basso dell’asse y, digitate 80.0 e premete il tasto <Enter>. Questo numero determina l’intervallo numerico tra le divisioni dell’asse y. Per esempio, se il numero sopra 75.0 è 77.5, indicando una divisione di 2.5 per l’asse y e cambiando 77.5 in 80.0 si riformatta l’asse y su multipli di 5.0 (75.0, 80.0, 85.0 e così via). Nota

Le dimensioni del grafico hanno un effetto diretto sulla visualizzazione delle scale degli assi. Aumentate le dimensioni del grafico se incontrate problemi mentre modificate gli assi. 12. Cliccate con il tasto destro del mouse sul grafico e selezionate Visible Items»Scale Legend dal menu rapido per visualizzare la legenda della scala, come mostrato nell’illustrazione seguente. Potete inserire la legenda della scala in un qualsiasi punto del pannello frontale.

 National Instruments Corporation

4-23

LabVIEW Corso Base I


Lezione 4

Cicli e grafici

1 2

4

3

5

1

Asse X

3

Etichette di scala

5

2

Asse Y

4

Pulsante blocco di 6 scala

6 Pulsante autoscale Pulsante formato di scala

13. Utilizzate la legenda della scale per personalizzare ogni asse. a. Assicuratevi che il LED Autoscale sia verde e che il pulsante Lock Autoscale appaia bloccato così l’asse y regola i valori minimo e massimo per adattare i dati nel grafico. b. Cliccate sul pulsante Scale Format per modificare il formato, la precisione, la modalità di mappatura, la visibilità della scala e le opzioni di griglia per ogni asse. 14. Utilizzate la legenda del grafico per personalizzare i grafici. a. Utilizzate lo strumento Posiziona per ridimensionare la legenda del grafico per includere due andamenti. b. Utilizzate lo strumento Testo per modificare Temp in Running Avg e per modificare Plot 1 in Current Temp. Se il testo non c’entra, utilizzate lo strumento Posiziona per ridimensionare la legenda del grafico. c. Cliccate con il tasto destro del mouse sul grafico nella legenda del grafico per impostare gli stili di linea e dei punti e il colore dello sfondo o delle tracce. 15. Cliccate con il tasto destro del mouse sul grafico e selezionate Visible Items»Graph Palette dal menu rapido per visualizzare la palette del grafico, come mostrato nell’illustrazione seguente. Potete inserire la palette del grafico dovunque sul pannello frontale.

LabVIEW Corso Base I

4-24

 National Instruments Corporation


Lezione 4

2

1

Cicli e grafici

3

4

1

Strumento Movimento Cursore

2

Pulsante di Zoom

3

Strumento Panning

4

Menu a tendina di zoom

Utilizzate il pulsante Zoom per ingrandire o rimpicciolire delle sezioni del grafico o l’intero grafico. Utilizzate lo strumento di Panning per prendere il grafico e spostarlo nel display. Utilizzate lo strumento Movimento del cursore per spostare il cursore sul grafico. 16. Salvate il VI ed avviatelo. Mentre il VI è in esecuzione, utilizzate i pulsanti nella legenda della scala e la palette del grafico per modificare il grafico. Nota

Se volete modificare le etichette degli assi, il display potrebbe diventare più grande della massima dimensione che il VI può rappresentare correttamente. 17. Utilizzate lo strumento Modifica per cliccare sull’interruttore Power ed arrestare il VI. 18. Salvate e chiudete il VI.

Fine dell’esercitazione 4-5

 National Instruments Corporation

4-25

LabVIEW Corso Base I


Lezione 4

Cicli e grafici

D. Cicli For Un Ciclo For, mostrato a sinistra, esegue una parte dello schema a blocchi un certo numero di volte. Il Ciclo For si trova nella palette Functions»Structures. Il valore nel terminale di conteggio (terminale d’ingresso), mostrato a sinistra, indica quante volte viene ripetuto il sottoprogramma. Il terminale d’iterazione (terminale di uscita), mostrato a sinistra, contiene il numero di iterazioni completate. Il conteggio delle iterazioni parte sempre da zero. Durante la prima iterazione, il terminale d’iterazione fornisce 0. Il Ciclo For differisce dal Ciclo While per il fatto che il Ciclo For è in esecuzione un certo numero di volte. Un Ciclo While ferma l’esecuzione del sottoprogramma solo se si verifica la condizione impostata al terminale condizionale. Il Ciclo For seguente genera 100 numeri casuali e visualizza i punti su un grafico.

Conversione numerica LabVIEW può rappresentare dati di tipo numerico come interi (byte, word o long), a virgola mobile (a precisione singola, doppia o estesa) o complessi (a precisione singola, doppia o estesa). Quando collegate due o più ingressi numerici di diverse rappresentazioni ad una funzione, la funzione generalmente fornisce un’uscita nel formato più grande o più ampio. Le funzioni forzano le rappresentazioni più piccole a quelle più grandi prima dell’esecuzione e LabVIEW aggiunge un punto di forzatura sul terminale in cui ha luogo la conversione. Per esempio, il terminale di conteggio di un Ciclo For è un intero di tipo long. Se collegate un numero a doppia precisione, in virgola mobile, al terminale di conteggio, LabVIEW converte il numero in un intero di tipo long. Compare un punto grigio di forzatura sul terminale di conteggio del primo Ciclo For, come mostrato nell’illustrazione seguente.

LabVIEW Corso Base I

4-26

 National Instruments Corporation


Lezione 4

Cicli e grafici

Per cambiare la rappresentazione di un oggetto numerico, cliccate con il tasto destro del mouse sull’oggetto e selezionate Representation dal menu rapido. Selezionate il tipo di dato che meglio rappresenta i vostri dati. Quando LabVIEW converte numeri a virgola mobile in interi, li arrotonda all’intero più vicino. LabVIEW arrotonda x.5 all’intero pari più vicino. Per esempio, LabVIEW arrotonda 2.5 a 2 e 3.5 a 4.

 National Instruments Corporation

4-27

LabVIEW Corso Base I


Lezione 4

Cicli e grafici

Esercitazione 4-6 Obiettivo:

VI Random Average

Costruire un VI che visualizzi due andamenti, uno random e l’altro di media continua degli ultimi quattro punti, su un grafico in modalità di aggiornamento sweep. 1. Costruite questo VI, utilizzando i seguenti suggerimenti: Ÿ

Utilizzate un Ciclo For (n = 200) invece di un Ciclo While. Il grafico dovrebbe essere simile al seguente.

Ÿ

Utilizzate un registro a scorrimento con tre terminali a sinistra per effettuare la media sugli ultimi quattro punti.

Ÿ

Utilizzate la funzione Random Number (0-1) che si trova nella palette Functions»Numeric per generare dati.

Ÿ

Utilizzate la funzione Bundle che si trova nella palette Functions»Cluster per raggruppare i dati casuali con i dati mediati prima della visualizzazione.

2. Salvate il VI e chiamatelo Random Average.vi. 3. Chiudete il VI.

Fine dell’esercitazione 4-6

LabVIEW Corso Base I

4-28

 National Instruments Corporation


Lezione 4

Cicli e grafici

Sommario, trucchi e consigli Ÿ

Utilizzate le strutture nello schema a blocchi per ripetere blocchi di codice e per eseguire codice in maniera condizionata o in un ordine specificato.

Ÿ

Il Ciclo While esegue il sottoprogramma finché il terminale condizionale riceve uno specifico valore booleano. Di default, il Ciclo While esegue il suo sottoprogramma finché il terminale condizionale riceve un valore FALSE.

Ÿ

Il Ciclo For esegue un sottoprogramma un certo numero di volte.

Ÿ

Create cicli utilizzando il cursore per trascinare un rettangolo di selezione intorno alla sezione dello schema a blocchi che volete ripetere o trascinando e lasciando lo schema a blocchi all’interno del ciclo.

Ÿ

La funzione Wait Until Next ms Multiple garantisce che ogni iterazione avvenga a determinati intervalli. Utilizzate questa funzione per aggiungere temporizzazioni ai cicli.

Ÿ

Il grafico è un particolare indicatore numerico che visualizza uno o più andamenti.

Ÿ

Il grafico presenta le tre seguenti modalità di aggiornamento: − Un grafico strip mostra i dati che scorrono continuamente da sinistra a destra lungo il grafico. − Un grafico scope mostra un insieme di dati, come un impulso o un’onda, facendoli scorrere da sinistra a destra. − Un grafico sweep è simile ad un display EKG. Un grafico sweep lavora in maniera analoga ad un oscilloscopio eccetto il fatto che mostra i dati più vecchi sulla destra e quelli nuovi sulla sinistra di una linea di separazione verticale.

Ÿ

Utilizzate i registri a scorrimento sui Cicli For e sui Cicli While per trasferire valori da un’iterazione di ciclo alla successiva.

Ÿ

Create un registro a scorrimento cliccando con il tasto destro del mouse sul bordo sinistro o destro di un ciclo e selezionando Add Shift Register dal menu rapido.

Ÿ

Per configurare un registro a scorrimento affinché porti i valori all’iterazione successiva, cliccate con il tasto destro del mouse sul terminale di sinistra e selezionate Add Element dal menu rapido.

Ÿ

Cliccate con il tasto destro del mouse su un grafico o su uno dei suoi componenti per impostare gli attributi del grafico e delle sue rappresentazioni.

Ÿ

Punti di forzatura compaiono laddove LabVIEW forza una rappresentazione numerica di un terminale per adattarla a quella di una altro terminale.

 National Instruments Corporation

4-29

LabVIEW Corso Base I


Lezione 4

Cicli e grafici

Esercizi aggiuntivi 4-7 Sfida

Utilizzando solo un Ciclo While costruite una combinazione di Ciclo For e di Ciclo While che si arresti se viene raggiunto un certo numero di iterazioni definite con un controllo sul pannello frontale, oppure quando cliccate sul pulsante di stop. Salvate il VI come Combo While-For Loop.vi.

4-8

Costruite un VI che misuri continuativamente la temperatura una volta al secondo e visualizzi la temperatura su un grafico scope. Se la temperatura va al di sopra o al disotto dei limiti specificati con i controlli del pannello frontale, il VI accende un LED sul pannello frontale. Il grafico visualizza la temperatura e i limiti di temperatura superiore ed inferiore. Dovreste essere in grado di impostare il limite dal pannello frontale seguente. Salvate il VI come Temperature Limit.vi.

4-9

Modificate il VI che avete creato nell’esercitazione 4-8 per visualizzare i valori massimo e minimo della traccia della temperatura.

Consiglio Utilizzate i registri a scorrimento e due funzioni Max & Min che si trovano nella palette FunctionsÂťComparison. Salvate il VI come Temp Limit (max-min).vi.

LabVIEW Corso Base I

4-30

ď›™ National Instruments Corporation


Lezione 4

Cicli e grafici

Note

ď›™ National Instruments Corporation

4-31

LabVIEW Corso Base I


Lezione 4

Cicli e grafici

Note

LabVIEW Corso Base I

4-32

ď›™ National Instruments Corporation


Lezione 5 Matrici, grafici e cluster Questa lezione descrive come utilizzare matrici, visualizzare dati su grafici di forme d’onda e X-Y, e ad utilizzare cluster. Le matrici raggruppano dati dello stesso tipo. I cluster raggruppano dati di tipo diverso.

Imparerete: P. A conoscere le matrici Q. A creare matrici con i cicli R. Ad utilizzare le funzioni Array S. A conoscere un polimorfismo T. Ad utilizzare grafici per visualizzare dati U. Ad utilizzare i cluster V. Ad utilizzare le funzioni Cluster

ď›™ National Instruments Corporation

5-1

LabVIEW Corso Base I


Lezione 5

Matrici, grafici e cluster

A. Matrici Le matrici raggruppano dati dello stesso tipo. Una matrice consiste in elementi e dimensioni. Gli elementi sono i dati che costituiscono la matrice. Una dimensione è la lunghezza, l’altezza o la profondità di una matrice. Una matrice può avere una o più dimensioni e 231-1 elementi per dimensione, memoria permettendo. Potete costruire matrici di tipo numerico, booleano, path, stringhe, forme d’onda e cluster. Prendete in considerazione l’uso di matrici quando lavorate con una raccolta di dati simili e quando eseguite calcoli ripetitivi. Le matrici sono ideali per la memorizzazione dei dati raccolti da forme d’onda o dei dati generati nei cicli, in cui ogni iterazione di un ciclo produce un elemento della matrice. Non potete creare matrici di matrici. Comunque potete creare una matrice di cluster in cui ogni cluster contiene una o più matrici. Gli elementi della matrice sono ordinati, proprio come i nove pianeti hanno stabilito un ordine in relazione alla loro distanza dal sole. Una matrice utilizza un indice tale che possiate accedere rapidamente ad un elemento particolare. L’indice parte da zero, il che vuol dire che si trova nell’intervallo da 0 a n-1, in cui n è il numero di elementi della matrice. In questo esempio, n = 9 per i nove pianeti, e quindi l’indice va da 0 a 8. La terra è il terzo pianeta e quindi ha indice 2.

Creazione dei controlli e degli indicatori delle matrici Per creare un controllo o un indicatore di una matrice come mostrato nell’esempio seguente, selezionate una matrice sulla palette Controls»Array & Cluster, inseritela nel pannello frontale, e trascinate un controllo o un indicatore nella struttura della matrice. Se voi tentate di trascinare nella matrice un controllo o un indicatore non valido, come un grafico XY, non siete in grado di lasciare il controllo o l’indicatore nella matrice.

1 Display indice

2 Display elemento

Dovete inserire un oggetto nella matrice prima di utilizzare la matrice nello schema a blocchi. Altrimenti il terminale della matrice appare nero con una parentesi vuota.

LabVIEW Corso Base I

5-2

 National Instruments Corporation


Lezione 5

Matrici, grafici e cluster

Matrici bi-dimensionali Una matrice bi-dimensionale memorizza gli elementi in una griglia. E’ necessario avere un indice di colonna e un indice di riga per individuare un elemento, entrambi che partono da zero. L’illustrazione seguente mostra una matrice bi-dimensionale a 6 colonne e 4 righe, che contiene 6 x 4 = 24 elementi. 0 Indice di riga

Indice di colonna 1 2 3

4

5

0 1 2 3

Per aggiungere dimensioni ad una matrice una alla volta, cliccate con il tasto destro del mouse sul display indice e selezionate Add Dimension dal menu rapido. Potete anche utilizzare lo strumento Posiziona per ridimensionare il display indice fino a quando non raggiungete le dimensioni desiderate.

Creazione delle costanti delle matrici Potete creare una costante della matrice sullo schema a blocchi selezionando una costante della matrice dalla palette Functions»Array, inserendola nello schema a blocchi e trascinando una costante all’interno della struttura della matrice.

 National Instruments Corporation

5-3

LabVIEW Corso Base I


Lezione 5

Matrici, grafici e cluster

B. Autoindicizzazione Se collegate una matrice al tunnel di un Ciclo For o di un Ciclo While, potete leggere e processare ogni elemento di quella matrice abilitando l’autoindicizzazione. Quando autoindicizzate un tunnel di uscita di una matrice, la matrice di uscita riceve un nuovo elemento da ogni iterazione del ciclo. Il collegamento dal tunnel di uscita all’indicatore della matrice diventa più spesso quando si modifica in un array sul bordo del ciclo e il tunnel di uscita contiene parentesi quadrate che rappresentano una matrice, come mostrato nella figura seguente.

Disabilitate l’autoindicizzazione cliccando con il tasto destro del mouse sul tunnel e selezionando Disable Indexing dal menu rapido. Per esempio, disabilitate l’autoindicizzazione se avete bisogno solo dell’ultimo valore passato al tunnel nell’esempio precedente, senza creare una matrice. Nota

Siccome utilizzate i Cicli For per processare matrici un elemento alla volta, LabVIEW abilita l’autoindicizzazione di default per ogni matrice che collegate ad un Ciclo For. L’autoindicizzazione per i Cicli While è disabilitata di default. Per abilitare l’autoindicizzazione, cliccate con il tasto destro del mouse sul tunnel e selezionate Enable Indexing dal menu rapido.

Creazione di matrici bidimensionali Potete utilizzare due Cicli For, uno dentro l’altro, per creare una matrice bidimensionale. Il Ciclo For più esterno crea gli elementi di riga e quello interno crea gli elementi di colonna, come mostrato nell’esempio seguente.

LabVIEW Corso Base I

5-4

 National Instruments Corporation


Lezione 5

Matrici, grafici e cluster

Utilizzo dell’autoindicizzazione per impostare il contatore del Ciclo For Se abilitate l’autoindicizzazione di una matrice collegata ad un terminale d’ingresso di un Ciclo For, LabVIEW imposta il terminale contatore sulla base delle dimensioni della matrice, così non dovete collegare il terminale contatore. Se abilitate l’autoindicizzazione per più di un tunnel, o se impostate il terminale contatore, il contatore diventa il più piccolo delle due possibilità. Per esempio, se collegate una matrice con 10 elementi ad un tunnel d’ingresso di un Ciclo For e impostate il terminale contatore a 15, il ciclo viene eseguito 10 volte.

 National Instruments Corporation

5-5

LabVIEW Corso Base I


Lezione 5

Matrici, grafici e cluster

C. Funzioni delle matrici Utilizzate le funzioni delle matrici che si trovano nella palette Functions»Array per creare e modificare le matrici: Le funzioni delle matrici comprendono: Ÿ

Array Size – Fornisce il numero di elementi presenti in ogni dimensione della matrice. Se la matrice è n-dimensionale, l’uscita size è una matrice di n elementi. Per esempio, la funzione Array Size fornisce un size di 3 per la matrice seguente. 7

Ÿ

2

Initialize Array – Crea una matrice n-dimensionale in cui ogni elemento viene inizializzato al valore di element. Ridimensionate la funzione per aumentare il numero delle dimensioni della matrice di uscita. Per esempio, la funzione Initialize Array fornisce la matrice seguente con un element di 4, un dimension size di 3, e un terminale dimension size. 4

Ÿ

4

4

4

Build Array – Concatena più matrici o aggiunge elementi ad una matrice n-dimensionale. Ridimensionate la funzione per aumentare il numero di elementi della matrice di uscita. Per esempio, se voi concatenate le due matrici precedenti, la funzione Build Array fornisce la matrice seguente. 7

4

2

4

4

4

Per concatenare gli ingressi in una matrice più lunga delle stesse dimensioni di quella mostrata in figura, cliccate con il tasto destro del mouse sul nodo della funzione e selezionate Concatenate Inputs dal menu rapido. 7 Ÿ

LabVIEW Corso Base I

2

4

4

4

Array Subset – Fornisce una porzione di una matrice che inizia da index e contiene un numero di elementi pari a lenght. Per esempio, se utilizzate la matrice precedente come ingresso, la funzione Array Subset fornisce la matrice seguente per un index di 2 e un lenght di 3. 2

Ÿ

4

4

4

Index Array – Fornisce un elemento di un array che si trova in index. Per esempio, se utilizzate la matrice precedente come input, la funzione Index Array fornisce 2 per un index di 0.

5-6

 National Instruments Corporation


Lezione 5

Matrici, grafici e cluster

Potete anche utilizzare la funzione Index Array per estrarre una riga o una colonna da una matrice bi-dimensionale per creare una sottomatrice da quella originale. Per far questo, collegate una matrice 2D all’ingresso della funzione. Sono disponibili due terminali index. Il terminale index superiore indica la riga e il secondo terminale indica la colonna. Potete collegare gli ingressi ad entrambi i terminali index per indicizzare un singolo elemento o potete collegare solo un terminale per estrarre una riga o una colonna di dati. Per esempio, collegate la matrice seguente all’ingresso della funzione. 7

4

2

4

4

4

La funzione Index Array fornisce la matrice seguente per un index (row) di 0. 7

ď›™ National Instruments Corporation

4

2

5-7

LabVIEW Corso Base I


Lezione 5

Matrici, grafici e cluster

D. Polimorfismo Le funzioni numeriche che si trovano nella palette Functions»Numeric sono polimorfiche. Ciò significa che gli ingressi a queste funzioni possono essere differenti strutture di dati, come scalari e matrici. Per esempio, potete utilizzare la funzione Add per aggiungere uno scalare ad una matrice o mettere insieme due matrici. Collegate uno scalare 2 e la matrice seguente alla funzione Add. 1

3

2

La funzione aggiunge lo scalare ad ogni elemento della matrice e fornisce la seguente matrice. 3

5

4

Se collegate le due matrici precedenti alla funzione Add, la funzione aggiunge ogni elemento di una matrice al corrispondente elemento dell’altra generando la matrice seguente. 4

8

6

Collegate due matrici di dimensioni diverse alla funzione Add, come la matrice precedente e quella seguente. 3

1

2

3

La funzione addiziona gli elementi corrispondenti e genera la seguente matrice, avente dimensioni pari a quelle della matrice più piccola. 7

9

8

Utilizzate le funzioni Numeric con i cluster allo stesso modo in cui le utilizzate con matrici di numeri. Fate riferimento alla Sezione F, Cluster per maggiori informazioni sui cluster.

LabVIEW Corso Base I

5-8

 National Instruments Corporation


Lezione 5

Esercitazione 5-1

Matrici, grafici e cluster

VI Array Exercise Monitor

Obiettivo: Creare matrici ed acquisire familiarità con le funzioni delle matrici Completate i passi seguenti per costruire un VI che crei una matrice di numeri casuali, scali la matrice risultante e consideri un sottoinsieme della matrice finale.

Pannello frontale 60. Aprite un nuovo VI e costruite il seguente pannello frontale.

a. Inserite una matrice che si trova nella palette Controls»Array & Cluster. b. Etichettate la matrice come Random Array. c. Inserite un indicatore digitale dalla palette Controls»Numeric nella finestra delle matrici. d. Utilizzate lo strumento Posiziona per ridimensionare il controllo della matrice per contenere 10 indicatori digitali. e. Premete il tasto <Ctrl> mentre cliccate sul controllo Random Array e lo trascinate per creare due copie del controllo. f. Etichettate le copie Final Array e Subset Array. g. Inserite tre controlli digitali ed etichettateli con Scaling Factor, Start Subset e # of Elements. h. Cliccate con il tasto destro del mouse sui controlli Start Subset e # of Elements, selezionate Representation dal menu rapido e selezionate I32. i. Non modificate ancora i valori dei controlli del pannello frontale.

 National Instruments Corporation

5-9

LabVIEW Corso Base I


Lezione 5

Matrici, grafici e cluster

Schema a blocchi 61. Costruite lo schema a blocchi seguente.

i. Inserite la funzione Random Number (0-1) che si trova nella palette Functions»Numeric. Questa funzione genera un numero casuale tra 0 e 1. j. Inserite un Ciclo For che si trova nella palette Functions»Structures. Questo ciclo accumula una matrice di 10 numeri casuali al tunnel di uscita. Create una costante pari a 10 per il terminale contatore. k. Inserite la funzione Array Subset che si trova nella palette Functions»Array. Questa funzione fornisce una parte di una matrice a partire da Start Subset e contenente un numero di elementi # of Elements. 62. Salvate il VI come Array Exercise.vi. 63. Visualizzate il pannello frontale, modificate i valori dei controlli ed avviate il VI alcune volte. Il Ciclo For esegue 10 iterazioni. Ogni iterazione genera un numero casuale e lo memorizza nel tunnel di uscita. Random Array visualizza una matrice di 10 numeri casuali. Il VI moltiplica ogni valore in Random Array per lo Scaling Factor per creare Final Array. Il VI prende un sottoinsieme di Final Array che inizia in Start Subset per un numero di elementi pari a # of Elements, e visualizza il sottoinsieme in Subset Array. 64. Chiudete il VI.

Fine dell’esercitazione 5-1

LabVIEW Corso Base I

5-10

 National Instruments Corporation


Lezione 5

Matrici, grafici e cluster

E. Grafici di forme d’onda (Waveform Graph) e grafici XY I VI che possiedono dei grafici di solito raccolgono i dati in una matrice e quindi li rappresentano su un grafico. 11

1 2

3 10 4 5

6

9

8

1 2 3

4 5 6

Legenda del grafico Cursore (solo grafico) Bordo griglia

7

Linea della griglia Palette del grafico Sposta cursore

7 8 9

Legenda del cursore Legenda della scala Scala X

10 Scala Y 11 Etichetta

I grafici che si trovano nella palette Controls»Graph comprendono i grafici di forme d’onda e i grafici XY. Il grafico di forme d’onda rappresenta solo funzioni ad un valore, come y = f(x), con punti uniformemente distribuiti lungo l’asse x, come nel caso di forme d’onda acquisite tempo-varianti. I grafici XY visualizzano un qualsiasi insieme di punti uniformemente campionati oppure no. Ridimensionate la legenda del grafico per visualizzare più andamenti. Questo serve per risparmiare spazio sul pannello frontale e per effettuare confronti tra grafici. I grafici di forme d’onda e XY si adattano automaticamente alle rappresentazioni multiple.

Grafici di forme d’onda ad una rappresentazione Il grafico di forme d’onda accetta una matrice monodimensionale di valori e interpreta i dati come punti sul grafico e incrementa l’indice x di uno iniziando con x = 0. Il grafico accetta anche un cluster di un valore iniziale x, un ∆x e una matrice di dati y. Fate riferimento al VI Waveform Graph che si trova in examples\general\graphs\gengraph.llb per gli esempi sui tipi di dati che i grafici di forme d’onda ad una rappresentazione accettano.

 National Instruments Corporation

5-11

LabVIEW Corso Base I


Lezione 5

Matrici, grafici e cluster

Grafici di forme d’onda a rappresentazione multipla Un grafico di forme d’onda a rappresentazione multipla accetta una matrice bidimensionale di valori, in cui ogni riga della matrice è una singola rappresentazione. Il grafico interpreta i dati come punti sul grafico e incrementa l’indice x di uno, iniziando da x = 0. Collegate una matrice di tipo bidimensionale al grafico, cliccate con il pulsante destro del mouse sul grafico e selezionate Transpose Array dal menu rapido per trattare ogni colonna della matrice come rappresentazione. Fate riferimento al grafico (Y) Multi Plot 1 nel VI Waveform Graph, in examples\general\graphs\gengraph.llb, per un esempio di grafico che accetta questo tipo di dato. Un grafico di forme d’onda a rappresentazione multipla accetta anche un cluster di un valore x, un valore ∆x e una matrice bidimensionale di dati y. Il grafico interpreta i dati y come punti sul grafico e incrementa l’indice x di ∆x iniziando da x = 0. Fate riferimento al grafico (Xo, dX, Y) Multi Plot 3 nel VI Waveform Graph, in examples\general \graphs\gengraph.llb, per un esempio di grafico che accetta questo tipo di dato. Un grafico di forme d’onda a rappresentazione multipla accetta anche un cluster di un valore iniziale x, un valore ∆x e una matrice che contiene cluster. Ogni cluster contiene una matrice di punti che contiene i dati y. Utilizzate la funzione Bundle per unire le matrici in cluster e utilizzate la funzione Build Array per costruire i cluster risultanti all’interno di una matrice. Potete anche utilizzare Build Cluster Array, che crea matrici di cluster che contengono gli ingressi che specificate. Fate riferimento al grafico (Xo, dX, Y) Multi Plot 2 nel VI Waveform Graph, in examples\general\graphs\gengraph.llb, per un esempio di grafico che accetta questo tipo di dato.

Grafici XY Il grafico XY è un oggetto general purpose per la rappresentazione cartesiana di funzioni a più valori, come le forme circolari o le forme d’onda con una base dei tempi variante.

Grafici XY ad una rappresentazione Il grafico XY ad una rappresentazione accetta un cluster che contiene una matrice x e una matrice y. Il grafico XY accetta anche una matrice di punti in cui un punto è un cluster che contiene un valore x e un valore y. Fate riferimento al VI XY Graph, in examples\general \graphs\gengraph.llb, per un esempio di tipi di dati per i grafici XY ad una rappresentazione.

LabVIEW Corso Base I

5-12

 National Instruments Corporation


Lezione 5

Matrici, grafici e cluster

Grafici XY a rappresentazione multipla Il grafico XY a rappresentazione multipla accetta una matrice di rappresentazioni, in cui una rappresentazione è un cluster che contiene una matrice x e una matrice y. Il grafico XY a rappresentazione multipla accetta anche una matrice di cluster di rappresentazioni, in cui una rappresentazione è una matrice di punti. Un punto è un cluster che contiene un valore x e un valore y. Fate riferimento al VI XY Graph, in examples\general\graphs\gengraph.llb, per un esempio di tipi di dati per i grafici XY a rappresentazione multipla.

 National Instruments Corporation

5-13

LabVIEW Corso Base I


Lezione 5

Matrici, grafici e cluster

Esercitazione 5-2

VI Graph Waveform

Obiettivo: Creare una matrice tramite autoindicizzazione di un Ciclo For e rappresentare una matrice su un grafico di forma d’onda. Completate i passi seguenti per creare un VI che generi e visualizzi una matrice su un grafico di forme d’onda e modificate il VI per avere più rappresentazioni.

Pannello frontale 48. Aprite un nuovo VI e costruite il seguente pannello frontale.

a. Inserite una matrice che si trova nella palette Controls»Array & Cluster. b. Etichettate la matrice come Waveform Array. c. Inserite un indicatore digitale che si trova nella palette Controls»Numeric, nella finestra della matrice. d. Inserite un grafico di forme d’onda che si trova nella palette Controls»Graph.

Schema a blocchi 49. Costruite lo schema a blocchi seguente.

LabVIEW Corso Base I

5-14

 National Instruments Corporation


Lezione 5

Matrici, grafici e cluster

Suggerimento

Quando collegate i dati ai diagrammi e ai grafici, utilizzate la finestra Context Help per stabilire come collegarli, incluso se utilizzare la funzione Build Array o Bundle, l’ordine dei terminali di ingresso e così via. In generale utilizzate un grafico tipo chart per singoli punti scalari, un grafico di forme d’onda per una matrice di y valori e un grafico XY per una matrice di x valori e una matrice di y valori. Per esempio, se spostate il cursore su un terminale di un grafico di forme d’onda nello schema a blocchi, compare la seguente informazione nella finestra Context Help. Selezionate Help»Examples e Fundamentals»Graphs and Charts per accedere al VI di esempio Waveform Graph. Fate riferimento alla Lezione 8, Acquisizione dati e forme d’onda, per ulteriori dettagli sul tipo di dato delle forme d’onda.

a. Selezionate

Functions»Select

c:\exercises\LV

Basics

a

VI,

andate

su

I, cliccate due volte sul VI

Thermometer, che avete realizzato nell’Esercitazione 3-2 e inserite il VI nello schema a blocchi. Questo VI fornisce un punto di dato di temperatura simulato durante ogni iterazione del Ciclo For. b. Inserite un Ciclo For che si trova nella palette Functions»Structures. Ogni iterazione del Ciclo For genera un valore di temperatura e lo memorizza nel tunnel. Create la costante 100 per il terminale contatore. 50. Salvate il VI come Graph Waveform Array.vi. 51. Visualizzate il pannello frontale ed avviate il VI. Il VI rappresenta la matrice di forme d’onda autoindicizzata sul grafico di forme d’onda. 52. Inserite l’indice di un elemento nel display indice di Waveform Array per visualizzare il valore di quell’elemento. Se voi inserite un numero più grande della dimensione della matrice che è 100, il display diventa opaco. 53. Utilizzate lo strumento Posiziona per ridimensionare Waveform Array per visualizzare più di un elemento. L’indicatore visualizza gli elementi in ordine di indice ascendente, iniziando con l’indice che avete immesso. 54. Visualizzate lo schema a blocchi.

 National Instruments Corporation

5-15

LabVIEW Corso Base I


Lezione 5

Matrici, grafici e cluster

In questo schema a blocchi, utilizzate il valore di default del valore iniziale x e del valore ∆x per la forma d’onda. Nei casi in cui il valore iniziale x e il valore ∆x siano un valore specifico, utilizzate la funzione Bundle per specificare un valore iniziale x e un valore ∆x per una matrice di forme d’onda. 55. Realizzate lo schema a blocchi seguente.

a. Inserite la funzione Bundle che si trova nella palette Functions»Cluster. Questa funzione assembla gli elementi della rappresentazione in un unico cluster. Gli elementi comprendono il valore iniziale di x (20), il valore di ∆x (0.5) e la matrice y con i dati della forma d’onda. b. Inserite due costanti numeriche che si trovano nella palette Functions»Numeric per il valore iniziale di x e di ∆x. c. Etichettate la costante ∆x digitando Dx. Utilizzate lo strumento Testo per selezionare la D e selezionate il font Symbol dal menu a tendina Text Settings sulla barra degli strumenti. D diventa il simbolo delta (∆). 56. Visualizzate il pannello frontale. 57. Salvate ed eseguite il VI. Il grafico visualizza gli stessi 100 punti dei dati con un valore iniziale di 20 e un ∆x di 0.5 per ogni punto sull’asse x. In un test temporizzato, questo grafico dovrebbe corrispondere a 50 secondi di dati che iniziano dopo 20 secondi. 58. Cliccate con il tasto destro del mouse sul grafico delle forme d’onda e selezionate Visible Items»Graph Palette dal menu rapido per visualizzare la palette del grafico. Cliccate sul pulsante Zoom per vedere i dati sul grafico con maggiore dettaglio. 59. Cliccate con il tasto destro del mouse sul grafico delle forme d’onda e selezionate Visible Items»Scale Legend dal menu rapido per visualizzare la legenda della scala. 60. Visualizzate lo schema a blocchi. 61. Cambiate x0 e ∆x a 0 e 1, rispettivamente. 62. Visualizzate il pannello frontale e cambiate il formato della scala, come mostrato nel pannello frontale seguente.

LabVIEW Corso Base I

5-16

 National Instruments Corporation


Lezione 5

Matrici, grafici e cluster

Cambiate il valore iniziale x e ∆x in un solo posto, o nella funzione Bundle o in X Scale»Formatting. Nota

a. Cliccate con il tasto destro del mouse sul grafico e selezionate X Scale»Formatting dal menu rapido. b. Cambiate Format in Time & Date. c. Assicuratevi che sia selezionato HH:MM:SS. d. Cambiate Scaling Factors ad un Xo di 7:30:00:00 01/15/2000 e un dX di 0:10:00:00.

AM

e. Cliccate sul pulsante OK per applicare le modifiche. Se il testo dell’asse x non è visibile, utilizzate lo strumento Posiziona per ridurre le dimensioni del display interno (area nera) del grafico. f. Salvate ed avviate il VI.

Grafici a più rappresentazioni Completate i passi seguenti per creare un grafico a più rappresentazioni costruendo una matrice bidimensionale di dati del tipo che viene normalmente passato ad un grafico ad una rappresentazione. 63. Costruite il seguente schema a blocchi.

 National Instruments Corporation

5-17

LabVIEW Corso Base I


Lezione 5

Matrici, grafici e cluster

a. Inserite la funzione Sine che si trova nella palette Functions»Numeric»Trigonometric. Utilizzate questa funzione per costruire una matrice di punti che rappresenti un periodo di un’onda sinusoidale. b. Inserite la funzione Build Array che si trova nella palette Functions»Array. Questa funzione crea la struttura dei dati per rappresentare due matrici su un grafico di forma d’onda. c. Inserite la costante pi che si trova nella Functions»Numeric»Additional Numeric Constants.

palette

d. Inserite le funzioni Numeric e create le costanti numeriche, come mostrato nel precedente schema a blocchi. 64. Visualizzate il pannello frontale. 65. Salvate ed eseguite il VI. Le due forme d’onda vengono rappresentate sullo stesso grafico. 66. Visualizzate lo schema a blocchi. 67. Cliccate con il tasto destro del mouse su Waveform Array, selezionate Custom Probe»Graph dal menu rapido e selezionate un grafico per inserire una sonda sul collegamento. 68. Visualizzate il pannello frontale ed avviate il VI. La sonda mostra solo la matrice dei dati. La sinusoide non è presente perché non avete inserito la sonda sul collegamento associato alla sinusoide. 69. Chiudete la finestra Probe. 70. Ingrandite una porzione del grafico. a. Cliccate sul pulsante Zoom della palette del grafico, mostrata a sinistra, per visualizzare il seguente menu a tendina.

b. Selezionate Zoom by X Rectangle, come mostrato. c. Cliccate sul grafico e trascinate un rettangolo di selezione. Quando rilasciate il pulsante del mouse, il display del grafico ingrandisce l’area selezionata. d. Potete anche selezionare Zoom by Y Rectangle o Zoom by Selected Area. Provate queste opzioni. e. Selezionate Undo Zoom dall’angolo inferiore sinistro del menu a tendina per togliere lo zoom o cliccate sul pulsante dell’asse x single fit o su quello analogo dell’asse y, mostrati a sinistra.

LabVIEW Corso Base I

5-18

 National Instruments Corporation


Lezione 5

Matrici, grafici e cluster

71. Utilizzate lo strumento Posiziona, mostrato a sinistra, per cliccare sul display del grafico e trascinare. Cliccate nuovamente sui pulsanti single fit dell’asse x e dell’asse y per riportare il display nella sua posizione originale. 72. Utilizzate lo strumento Cursor Movement, mostrato a sinistra, per riportare il cursore in modalità standard. 73. Salvate e chiudete il VI.

Fine dell’esercitazione 5-2

 National Instruments Corporation

5-19

LabVIEW Corso Base I


Lezione 5

Matrici, grafici e cluster

Esercitazione 5-3

VI Temperature Analysis

Obiettivo: Graficare ed analizzare dati.

Completate i passi seguenti per creare un VI che misuri la temperatura ogni 0.25 s per 10 s. Durante l’acquisizione, il VI visualizza le misure in tempo reale sul grafico. Terminata l’acquisizione, il VI rappresenta i dati su un grafico e calcola la temperatura minima, massima e quella media. Il VI visualizza la curva che meglio si adatta all’andamento della temperatura.

Pannello frontale 18. Aprite un nuovo VI e costruite il seguente pannello frontale, seguendo i suggerimenti proposti.

LabVIEW Corso Base I

Ÿ

Impostate lo stile dei punti sulla rappresentazione del grafico su una piccola x.

Ÿ

Nascondete la legenda della rappresentazione del grafico.

Ÿ

Cliccate con il tasto destro del mouse sul grafico, selezionate X Scale»Formatting dal menu rapido e portate dX a 0.25 e Digits of Precision a 2.

Ÿ

Utilizzate lo strumento Posiziona per ridimensionare la legenda della rappresentazione del grafico.

Ÿ

Utilizzate lo strumento Testo per ridenominare Plot 0 a Temp e Plot 1 a Fitted.

5-20

 National Instruments Corporation


Lezione 5

Matrici, grafici e cluster

Ÿ

Impostate lo stile dei punti del grafico Temp su un piccolo quadrato.

Ÿ

Non create ancora gli indicatori Mean, Max e Min.

Schema a blocchi 19. Costruite lo schema a blocchi seguente.

h. Selezionate

Functions»Select

a

VI,

andate

su

c:\exercises\LV Basics I e cliccate due volte sul VI

Thermometer che avete realizzato nell’esercitazione 3-2 e inseritelo nello schema a blocchi. Questo VI fornisce un punto di temperatura simulata. i. Inserite la funzione Wait Until Next ms Multiple che si trova nella palette Functions»Time & Dialog e create la costante 250. Questa funzione consente l’esecuzione del Ciclo For ogni 0.25 s (250 ms). j. Inserite la funzione Array Max & Min che si trova nella palette Functions»Array. Questa funzione fornisce la temperatura massima e minima. k. Inserite il VI Mean che si trova nella palette Functions»Mathematics»Probability and Statistics. Questo VI fornisce la media delle misure di temperatura. l. Cliccate con il tasto destro del mouse sui terminali di uscita della funzione Array Max & Min e sul VI Mean e selezionate Create»Indicator dal menu rapido per creare gli indicatori Max, Min e Mean. m. Inserite il VI General Polynomial Fit che si trova nella palette Functions»Mathematics»Curve Fitting. Questo VI fornisce una matrice che è un’approssimazione polinomiale alla matrice della temperatura.

 National Instruments Corporation

5-21

LabVIEW Corso Base I


Lezione 5

Matrici, grafici e cluster

n. Inserite la funzione Bundle che si trova nella palette Functions»Cluster. Premete il tasto <Ctrl> mentre trascinate la funzione per copiarla. Questa funzione assembla gli elementi della rappresentazione in un unico cluster. Gli elementi comprendono il valore iniziale x (0), il valore ∆x (0.25) e la matrice y dei dati di temperatura. Il valore ∆x di 0.25 è necessario affinché il VI rappresenti i punti della matrice di temperatura ogni 0.25 s sul grafico. o. Inserite la funzione Build Array che si trova nella palette Functions»Array. Questa funzione crea una matrice di cluster dal cluster di temperatura dal cluster di migliore approssimazione. 20. Salvate il VI come Temperature Analysis.vi. 21. Visualizzate il pannello frontale e avviate il VI. Il grafico visualizza sia i dati di temperatura e la curva di migliore approssimazione della forma d’onda di temperatura. 22. Provate differenti valori per l’ordine del polinomio sullo schema a blocchi e avviate il VI di nuovo. 23. Modificate l’aspetto della rappresentazione cambiando gli stili di rappresentazione e gli stili di riempimento. a. Cliccate con il tasto destro del mouse sul display Temp nella legenda della rappresentazione e selezionate Common Plots»Scatter Plot dal menu rapido, l’opzione centrale superiore. b. Cliccate con il tasto destro del mouse sul display Fitted nella legenda della rappresentazione, selezionate Bar Plots dal menu rapido e quindi la seconda opzione nella riga di mezzo. Il grafico dovrebbe apparire come quello seguente.

24. Salvate e chiudete il VI.

Fine dell’esercitazione 5-3

LabVIEW Corso Base I

5-22

 National Instruments Corporation


Lezione 5

Esercitazione 5-4

Matrici, grafici e cluster

VI Shift Register Example

Obiettivo: Visualizzare dati utilizzando un grafico XY.

Completate i passi seguenti per costruire un VI che raffiguri un cerchio utilizzando matrici indipendenti x e y.

Pannello frontale 6. Aprite un nuovo VI e costruite il seguente pannello frontale.

a. Inserite un grafico XY che si trova nella palette ControlsGraph. b. Etichettate il grafico XY con Circle Graph. c. Sostituite Plot 0 con Circle nell’etichetta della legenda. d. Cliccate con il tasto destro del mouse nella legenda del grafico, selezionate Point Style dal menu rapido e selezionate il quadrato piccolo. e. Modificate le etichette e gli intervalli della scala, come indicato nel pannello frontale precedente.

ď›™ National Instruments Corporation

5-23

LabVIEW Corso Base I


Lezione 5

Matrici, grafici e cluster

Schema a blocchi 7. Costruite lo schema a blocchi seguente.

a. Inserite la funzione Sine & Cosine che si trova nella palette Functions»Numeric»Trigonometric. Questa funzione costruisce una matrice di punti che rappresenta un periodo di una forma d’onda sinusoidale e di una cosinusoide. b. Inserite la funzione Bundle che si trova nella palette Functions»Cluster. Questa funzione assembla la matrice del seno e quella del coseno per rappresentare il seno in funzione del coseno producendo un cerchio. c. Inserite la costante Pi Multiplied by 2 che si trova nella palette Functions»Numeric»Additional Numeric Constants. 8. Salvate il VI come Graph Circle.vi. 9. Visualizzate il pannello frontale ed avviate il VI. 10. Chiudete il VI.

Fine dell’esercitazione 5-4

LabVIEW Corso Base I

5-24

 National Instruments Corporation


Lezione 5

Matrici, grafici e cluster

F. Cluster Potete utilizzare la funzione Bundle con diagrammi e grafici per raggruppare informazioni ai fini della loro rappresentazione. La funzione Bundle fornisce un tipo di dato chiamato cluster. I cluster riuniscono elementi di dati di tipo diverso, come un insieme di fili, come nel caso del cavo telefonico, in cui ogni filo del cavo rappresenta un elemento diverso del cluster. Un cluster è simile ad un record nei linguaggi di programmazione testuali. Raggruppare diversi elementi di dati in cluster elimina il disordine causato dai collegamenti sullo schema a blocchi e riduce il numero di terminali del riquadro connettori di cui necessitano i subVI. Il riquadro connettori possiede al più 28 terminali. Se il vostro pannello frontale contiene più di 28 fra controlli e indicatori che volete utilizzare da programma, raggruppatene alcuni in un cluster ed assegnate il cluster ad un terminale del riquadro connettori. Come nelle matrici, un cluster può essere un controllo o un indicatore. Un cluster non può essere un misto di controlli e indicatori. Sebbene gli elementi dei cluster e delle matrici siano entrambi ordinati, dovete raggruppare tutti gli elementi dei cluster in una volta piuttosto che indicizzare gli elementi uno alla volta. Potete anche utilizzare la funzione Unbundle By Name per accedere ad elementi specifici del cluster.

Creazione di controlli e indicatori di cluster Per creare un controllo o un indicatore di un cluster, selezionate un cluster dalla palette Controls»Array & Cluster, inseritelo nel pannello frontale e trascinate controlli o indicatori nella finestra del cluster. Ridimensionate il cluster trascinando il cursore mentre inserite la finestra del cluster. L’esempio seguente è un cluster con tre controlli.

 National Instruments Corporation

5-25

LabVIEW Corso Base I


Lezione 5

Matrici, grafici e cluster

Creazione di costanti di cluster Potete creare una costante di cluster sullo schema a blocchi selezionando una costante di cluster sulla palette Functions»Cluster, inserendola nello schema a blocchi e trascinando una costante nella finestra del cluster. Se avete un controllo o un indicatore di cluster sul pannello frontale e volete creare una costante di cluster contenente gli stessi elementi sullo schema a blocchi, potete trascinare il cluster dal pannello frontale sullo schema a blocchi o cliccare con il tasto destro del mouse sul pannello frontale e selezionare Create»Constant dal menu rapido.

Ordine dei cluster Quando LabVIEW manipola cluster di dati, sono importanti sia i tipi di dati dei singoli elementi del cluster sia l’ordine degli elementi nel cluster. Gli elementi del cluster hanno un ordine logico scorrelato con la loro posizione nella finestra. Il primo oggetto che voi inserite nella finestra del cluster è l’elemento 0, il secondo l’elemento 1 e così via. Se cancellate un elemento l’ordine si aggiusta automaticamente. Utilizzate l’ordine del cluster per accedere agli elementi del cluster come fate con l’autoindicizzazione delle matrici. Potete modificare l’ordine degli oggetti in un controllo, in un indicatore o una costante del cluster sul pannello frontale o sullo schema a blocchi cliccando con il tasto destro del mouse sulla cornice del cluster e selezionando Reorder Controls In Cluster dal menu rapido. La barra degli strumenti e il cluster cambiano, come mostrato nell’esempio seguente. 1

3 2

4 5

1 2

LabVIEW Corso Base I

Pulsante di conferma 3 Cursore d’ordine del 5 Nuovo ordine Pulsante cancella cluster 4 Ordine corrente

5-26

 National Instruments Corporation


Lezione 5

Matrici, grafici e cluster

Il riquadro bianco su ogni elemento mostra la sua posizione corrente nell’ordine del cluster. Il riquadro nero mostra la nuova posizione dell’ordine dell’elemento. Per impostare l’ordine di un elemento di un cluster, digitate il nuovo numero d’ordine nel campo Click to set to e cliccate sull’elemento. L’ordine del cluster dell’elemento cambia e l’ordine del cluster degli altri elementi si aggiusta. Salvate le modifiche cliccando sul pulsante Confirm della barra degli strumenti. Tornate alle impostazioni originarie cliccando sul pulsante Cancel. Gli elementi corrispondenti, determinati dall’ordine del cluster, devono possedere tipi di dati compatibili. Per esempio, in un cluster, l’elemento 0 è un controllo numerico e l’elemento 1 è un controllo di stringa. In un secondo cluster , l’elemento 0 è un indicatore numerico e l’elemento 1 è un indicatore di stringa. Il controllo del cluster si collega correttamente all’indicatore del cluster. Comunque, se cambiate l’ordine del cluster dell’indicatore in maniera tale che la stringa sia l’elemento 0 e il numero sia l’elemento 1, il filo dal controllo del cluster all’indicatore del cluster appare spezzato, ad indicare che i tipi di dati non corrispondono.

 National Instruments Corporation

5-27

LabVIEW Corso Base I


Lezione 5

Matrici, grafici e cluster

F. Funzioni che operano sui cluster Utilizzate le funzioni Cluster che si trovano sulla palette Functions»Cluster per creare e manipolare cluster. Utilizzate le funzioni Bundle e Bundle by Name per assemblare e manipolare cluster e utilizzate le funzioni Unbundle e Unbundle by Name per disassemblare cluster. Potete anche creare le funzioni Bundle, Bundle by Name, Unbundle e Unbundle by Name cliccando con il tasto destro del mouse su un terminale cluster dello schema a blocchi e selezionando Cluster Tools dal menu rapido. Le funzioni Bundle e Unbundle contengono automaticamente il numero corretto di terminali. Le funzioni Bundle by Name e Unbundle by Name appaiono con il primo elemento nel cluster.

Assemblaggio dei cluster Utilizzate la funzione Bundle per assemblare elementi d’ingresso individuali in un singolo cluster o per modificare i valori di elementi individuali in un cluster esistente. Utilizzate lo strumento Posiziona per ridimensionare la funzione o cliccate con il tasto destro del mouse sul terminale component e selezionate Add Input dal menu rapido. Se collegate un cluster al terminale d’ingresso cluster, il numero di terminali d’ingresso deve corrispondere al numero di elementi nel cluster d’ingresso. Se collegate il terminale d’ingresso cluster, potete collegare solo i components che volete modificare. Per esempio, il cluster seguente contiene tre controlli.

Se conoscete l’ordine del cluster, potete utilizzare la funzione Bundle per modificare il valore Command collegando gli elementi seguenti.

LabVIEW Corso Base I

5-28

 National Instruments Corporation


Lezione 5

Matrici, grafici e cluster

Sostituzione o accesso agli elementi dei cluster Utilizzate la funzione Bundle by Name per sostituire o per accedere ad elementi di un cluster esistente. Bundle by Name lavora in maniera analoga alla funzione Bundle, ma invece di riferirsi ad elementi del cluster tramite il loro ordine, si riferisce ad essi tramite le loro etichette. Potete accedere solo ad elementi con etichetta propria. Il numero di terminali d’ingresso non deve corrispondere con il numero di elementi in named cluster. Utilizzate lo strumento Modifica per cliccare su un terminale d’ingresso e selezionate un elemento dal menu a tendina. Potete anche cliccare con il tasto destro del mouse sul terminale d’ingresso e selezionare l’elemento dal menu rapido Select Item. Nell’esempio seguente, potete utilizzare la funzione Bundle by Name per modificare Command e Function.

Utilizzate la funzione Bundle by Name per strutture di dati che possono cambiare durante lo sviluppo. Se aggiungete un nuovo elemento al cluster o modificate il suo ordine, non avete bisogno di ricollegare la funzione Bundle by Name perché i nomi sono ancora validi.

Scomposizione dei cluster Utilizzate la funzione Unbundle per dividere il cluster nei suoi singoli elementi. Utilizzate la funzione Unbundle by Name per riottenere gli elementi del cluster di cui avete specificato i nomi. Il numero dei terminali di uscita non dipende dal numero di elementi nel cluster d’ingresso. Utilizzate lo strumento Modifica per cliccare su un terminale di uscita e selezionate un elemento dal menu a tendina. Potete anche cliccare con il tasto destro del mouse sul terminale di uscita e selezionare l’elemento dal menu rapido Select Item. Per esempio, se utilizzate la funzione Unbundle con il cluster seguente, esso ha quattro terminali di uscita che corrispondono ai quattro controlli nel cluster. Dovete conoscere l’ordine del cluster per poter associare il terminale booleano corretto del cluster scomposto con l’interruttore corrispondente nel cluster.

 National Instruments Corporation

5-29

LabVIEW Corso Base I


Lezione 5

Matrici, grafici e cluster

In questo esempio, gli elementi sono ordinati dall’alto verso il basso a partire dall’elemento 0. Se utilizzate la funzione Unbundle by Name, potete avere un numero arbitrario di terminali di uscita e accedere a singoli elementi per nome in un ordine qualsiasi.

LabVIEW Corso Base I

5-30

ď›™ National Instruments Corporation


Lezione 5

Esercitazione 5-5 Obiettivo:

Matrici, grafici e cluster

VI Cluster Exercise

Creare cluster sul pannello frontale ed utilizzare le funzioni Cluster per assemblare e disassemblare cluster.

Pannello frontale 19. Aprite un nuovo VI e costruite il seguente pannello frontale.

a. Inserite un pulsante di Stop, un indicatore digitale e un LED circolare. b. Inserite un cluster che si trova nella palette ControlsArray & Cluster. c. Inserite i quattro oggetti del pannello frontale nel cluster. d. Create Modified Cluster duplicando Cluster, rietichettandolo, cliccando con il tasto destro sulla finestra e selezionando Change to Indicator dal menu rapido. e. Ripetete il passo d per creare Small Cluster e modificate gli indicatori come mostrato nel pannello frontale precedente. 20. Verificate l’ordine del cluster di Cluster e Small Cluster. Modified Cluster dovrebbe avere lo stesso ordine di Cluster. a. Cliccate con il tasto destro del mouse sulla cornice di ogni cluster e selezionate Reorder Controls in Cluster dal menu rapido. b. Impostate i seguenti ordini di cluster.

ď›™ National Instruments Corporation

5-31

LabVIEW Corso Base I


Lezione 5

Matrici, grafici e cluster

Schema a blocchi 21. Costruite lo schema a blocchi seguente.

a. Inserite la funzione Unbundle che si trova nella palette Functions»Cluster. Questa funzione scompone Cluster. Ridimensionate questa funzione a quattro terminali di uscita o collegate il cluster d’ingresso per ridimensionare la funzione automaticamente. b. Inserite la funzione Bundle che si trova nella palette Functions»Cluster. Questa funzione assembla Small Cluster. c. Inserite la funzione Unbundle by Name che si trova nella palette Functions»Cluster. Questa funzione fornisce due elementi da Cluster. Ridimensionate questa funzione per avere due terminali di uscita. Se i nomi delle etichette non sono corretti, cliccate con il tasto destro sul nome e selezionate quello corretto dal menu rapido Select Item. d. Inserite la funzione Increment che si trova nella palette Functions»Numeric. Questa funzione aggiunge uno al valore di Numeric.

LabVIEW Corso Base I

5-32

 National Instruments Corporation


Lezione 5

Matrici, grafici e cluster

e. Inserite la funzione Not che si trova nella palette Functions»Boolean. Questa funzione fornisce il valore logico negato di Boolean. f. Inserite la funzione Bundle by Name che si trova nella palette Functions»Cluster. Questa funzione sostituisce i valori di Numeric e Boolean in Cluster e crea Modified Cluster. Ridimensionate questa funzione per avere due terminali d’ingresso. Se i nomi delle etichette non sono corretti, cliccate con il tasto destro del mouse sul nome e selezionate quello corretto dal menu rapido Select Item. g. Cliccate con il tasto destro del mouse sul terminale condizionale del Ciclo While e selezionate Stop If True dal menu rapido. Il VI si arresta quando cliccate sul pulsante Stop. 22. Salvate il VI come Cluster Exercise.vi. 23. Visualizzate il pannello frontale ed avviate il VI. 24. Inserite diversi valori in Cluster ed avviate il VI di nuovo. 25. Chiudete il VI.

Fine dell’esercitazione 5-5

 National Instruments Corporation

5-33

LabVIEW Corso Base I


Lezione 5

Matrici, grafici e cluster

Esercitazione 5-6

VI Cluster Scaling (opzionale)

Obiettivo: Costruire un VI che utilizzi il polimorfismo dei cluster.

Completate i passi seguenti per costruire un VI che scali i valori immagazzinati in un cluster, in cui ogni elemento del cluster ha un diverso fattore di scala. Assumete che le tensioni siano misurate da trasduttori che misurano la pressione, il flusso e la temperatura. Il VI quindi scala questi valori per ottenere i valori effettivi presenti nel sistema.

Pannello frontale 4. Aprite il VI Cluster Scaling. Il pannello frontale è già realizzato. 5. Cambiate i controlli del pannello frontale nel modo illustrato.

Schema a blocchi 6. Costruite il seguente schema a blocchi. Assicuratevi di applicare i fattori di scala corretti ad ogni elemento nel cluster Raw Data.

7. Salvate ed avviate il VI. 8. Cambiate i controlli del pannello frontale ed avviate nuovamente il VI. 9. Chiudete il VI.

Fine dell’esercitazione 5-6

LabVIEW Corso Base I

5-34

 National Instruments Corporation


Lezione 5

ď›™ National Instruments Corporation

5-35

Matrici, grafici e cluster

LabVIEW Corso Base I


Lezione 5

Matrici, grafici e cluster

Sommario, trucchi e consigli

LabVIEW Corso Base I

Ÿ

Le matrici raggruppano elementi dello stesso tipo. Potete costruire matrici di numeri, di booleani, di percorsi, di stringhe, di forme d’onda e di cluster.

Ÿ

L’indice parte da zero, il che significa che si trova nell’intervallo da 0 a n-1, in cui n è il numero degli elementi della matrice.

Ÿ

Dovete inserire un oggetto nella finestra della matrice prima di utilizzare la matrice nello schema a blocchi. Altrimenti, il terminale della matrice appare nero con una parentesi vuota.

Ÿ

Per creare un controllo o un indicatore, selezionate una matrice sulla palette Controls»Array & Cluster, inseritela nel pannello frontale e trascinate un controllo o un indicatore nella finestra della matrice.

Ÿ

Se collegate una matrice ad un tunnel d’ingresso di un Ciclo For o di un Ciclo While, potete leggere e processare ogni elemento in quella matrice abilitando l’autoindicizzazione.

Ÿ

Utilizzate le funzioni Array che si trovano Functions»Array per creare e modificare matrici.

Ÿ

Di default LabVIEW abilita l’autoindicizzazione nei Cicli For e la disabilita nei Cicli While.

Ÿ

Il polimorfismo è la capacità di una funzione di adattare i dati d’ingresso di differenti strutture di dati.

Ÿ

I grafici di forme d’onda e i grafici XY visualizzano dati da matrici.

Ÿ

Cliccate con il tasto destro del mouse su un grafico o su un suo elemento per configurarlo.

Ÿ

Potete visualizzare più di una rappresentazione su un grafico utilizzando la funzione Build Array che si trova nella palette Functions»Array e la funzione Bundle che si trova nella palette Functions»Cluster per diagrammi e grafici XY. Il grafico diviene a rappresentazione multipla quando collegate la matrice delle uscite al terminale.

Ÿ

Quando collegate dati a diagrammi e grafici, utilizzate la finestra Context Help per determinare come collegarli.

Ÿ

I cluster riuniscono elementi di dati di tipo diverso. Un cluster non può contenere un misto di controlli e indicatori.

Ÿ

Se il vostro pannello frontale contiene più di 28 tra controlli e indicatori, che volete utilizzare da programma, raggruppatene alcuni in un cluster e assegnate il cluster ad un terminale sul riquadro dei connettori per eliminare confusione sullo schema a blocchi.

Ÿ

Per creare un controllo o un indicatore di cluster, selezionate un cluster sulla palette Controls»Array & Cluster, inseritelo nel pannello frontale e trascinate controlli o indicatori nella sua finestra.

5-36

nella

palette

 National Instruments Corporation


Lezione 5

Ÿ

Matrici, grafici e cluster

Utilizzate le funzioni del cluster che si trovano nella palette Functions»Cluster per creare e modificare cluster.

 National Instruments Corporation

5-37

LabVIEW Corso Base I


Lezione 5

Matrici, grafici e cluster

Esercizi aggiuntivi 4-10 Costruite un VI che inverta l’ordine di una matrice contenente 100 numeri casuali. Per esempio, l’elemento [0] diventa l’elemento [99], l’elemento [1] diventa l’elemento [98], e così via. Consiglio Utilizzate la funzione Reverse ID Array che si trova nella palette Functions»Array per invertire l’ordine di una matrice. Salvate il VI come Reverse Random Array.vi. 4-11 Costruite un VI che inizialmente accumuli una matrice di valori di temperatura utilizzando il VI Thermometer che avete costruito nell’esercitazione 3-2. Impostate le dimensioni della matrice con un controllo sul pannello frontale. Inizializzate la matrice utilizzando la funzione Initialize Array con le stesse dimensioni in cui tutti i valori sono uguali a 10. Aggiungete le due matrici, calcolate le dimensioni della matrice finale ed estraete il valore medio dalla matrice finale. Visualizzate Temperature Array, Initialized Array, Final Array e Mid Value. Salvate il VI come Find Mid Value.vi. 4-12 Costruite un VI che generi una matrice bi-dimensionale di tre righe per 10 colonne contenente numeri casuali. Dopo aver generato la matrice, indicizzate e rappresentate ogni riga sul grafico. Il pannello frontale dovrebbe contenere tre grafici. Salvate il VI come Extract 2D Array.vi. Sfida

4-13 Costruite un VI che simuli il tiro dei dadi con i possibili valori 1-6 e registri il numero di volte che i dadi producono un numero. L’ingresso è il numero di volte che si tirano i dadi e l’uscita comprende il numero di volte che i dadi escono su un possibile valore . Utilizzate solo un registro a scorrimento. Salvate il VI come Die Roller.vi.

Sfida

4-14 Costruite un VI che generi una matrice monodimensionale e che moltiplichi insieme coppie di elementi, a partire dagli elementi 0 e 1 e fornisca la matrice risultante. Per esempio, la matrice di ingresso con i valori 1 23 10 5 7 11 fornisce una matrice di uscita 23 50 77.

Consiglio

Utilizzate la funzione Decimate 1D Array che si trova nella palette Functions»Array. Salvate il VI come Array Pair Multiplier.vi.

LabVIEW Corso Base I

5-38

 National Instruments Corporation


Lezione 5

Matrici, grafici e cluster

Note

ď›™ National Instruments Corporation

5-39

LabVIEW Corso Base I



Lezione 6 Strutture Case e Sequence Questa lezione descrive la struttura Case, la struttura Sequence e il Formula Node che si trovano nella palette Functions»Structures e l’Expression Node che si trova nella palette Functions»Numeric.

Imparerete: W. Ad utilizzare la struttura Case X. Ad utilizzare la struttura Sequence Y. Ad utilizzare il Formula Node Z. A sostituire strutture Sequence

 National Instruments Corporation

6-1

LabVIEW Corso Base I


Lezione 6

Strutture Case e Sequence

A. Strutture Case Una struttura Case, mostrata a sinistra, possiede due o più schemi a blocchi, o case. È visibile solo uno schema a blocchi per volta e la struttura lo esegue uno alla volta. Un valore d’ingresso determina quale schema a blocchi deve essere eseguito. La struttura Case è simile alle dichiarazioni if…then…else nei linguaggi di programmazione testuali. Il terminale di identificazione della condizione nella parte alta della struttura Case, mostrato a sinistra, contiene al centro il terminale di identificazione della condizione e da ogni lato dei pulsanti a freccetta di aumento o diminuzione. Utilizzate le freccette per scorrere le condizioni disponibili. Collegate un valore d’ingresso, o selettore, al terminale di selezione mostrato a sinistra per stabilire quale condizione eseguire. Dovete collegare al terminale di selezione un intero, un booleano, una stringa o un valore di tipo elencato. Potete posizionare il terminale di selezione in un punto qualsiasi del bordo sinistro della struttura Case. Se il terminale di selezione è booleano, la struttura possiede la condizione TRUE e quella FALSE. Se il terminale di selezione è un intero, una stringa o un valore del tipo elencato, la struttura può avere fino a 231-1 condizioni. Potete specificare una condizione di default per la struttura Case. Dovete specificare un valore di default per trattare valori fuori dall’intervallo o elencare esplicitamente ogni possibile valore di ingresso. Per esempio, se specificate le condizioni 1, 2 e 3 ma prendete in ingresso un 4, la struttura Case esegue la condizione di default. Cliccate sul bordo della struttura Case per aggiungere, duplicare rimuovere o risistemare le condizioni e per selezionare la condizione di default.

Tunnel d’ingresso e di uscita Potete creare tunnel d’ingresso e di uscita multipli per una struttura Case. Gli ingressi sono disponibili in tutti gli schemi a blocchi componenti, ma gli schemi non hanno bisogno di utilizzare ogni ingresso. Quando create un tunnel di uscita per una condizione, appaiono dei tunnel nella stessa posizione del bordo in tutti gli altri casi. I tunnel di uscita non collegati appaiono come quadrati bianchi. Potete definire una diversa sorgente di dati per lo stesso tunnel di uscita in ogni condizione, ma i tipi di dati devono essere compatibili. Collegate il tunnel di uscita per ogni condizione non collegata, cliccando sul tunnel ogni volta. Potete anche collegare costanti o controlli alle condizioni non collegate cliccando con il tasto destro del mouse sul tunnel e selezionando Create»Constant o Create»Control dal menu rapido.

LabVIEW Corso Base I

6-2

 National Instruments Corporation


Lezione 6 Strutture Case e Sequence

Esempi Negli esempi seguenti, i numeri passano attraverso i tunnel nella struttura Case e vengono sommati o sottratti, a seconda del valore collegato al terminale di selezione.

Struttura Case Booleana L’esempio seguente è una struttura Case di tipo Booleano.

Se il controllo booleano collegato al terminale di selezione è TRUE, il VI somma i numeri. Altrimenti il VI sottrae i numeri.

Struttura Case ad Interi L’esempio seguente è una struttura Case ad interi.

Integer è un controllo del testo che si trova nella palette Controls»Ring & Enum che associa numeri a testi. Se il controllo di testo collegato al terminale di selezione è 0 (add), il VI somma i numeri. Se il valore è 1 (subtract), il VI sottrae i numeri.

 National Instruments Corporation

6-3

LabVIEW Corso Base I


Lezione 6

Strutture Case e Sequence

Struttura Case Stringa L’esempio seguente è una struttura Case di tipo stringa.

Se String è add, il VI somma i numeri. Se String è subtract, il VI sottrae i numeri.

Selezione di una condizione Per selezionare una condizione, digitate i valori nel terminale di identificazione della condizione o utilizzate lo strumento Testo per modificare i valori. Specificate un singolo valore o elenchi e intervalli di valori per selezionare la condizione. Per gli elenchi utilizzate le virgole per separare i valori. Specificate un intervallo come 10...20, intendendo tutti i numeri da 10 a 20, estremi inclusi. Potete anche utilizzare intervalli aperti. Ad esempio ..100 rappresenta tutti i numeri minori o uguali a 100. Potete anche combinare elenchi ed intervalli, per esempio ..5, 6, 7..10, 12, 13, 14. Quando inserite un selettore che contiene intervalli che si sovrappongono, la struttura Case visualizza nuovamente il selettore in una forma più compatta. L’esempio precedente diventa ..10, 12..14. Se inserite un valore del selettore che non è dello stesso tipo dell’oggetto collegato al terminale del selettore, il valore appare rosso per indicare che dovete cancellare o modificare il valore prima che la struttura possa essere eseguita e il VI non verrà eseguito. Inoltre, a causa di errori di troncamento che possono avvenire in virgola mobile, non potete usare i numeri in virgola mobile come valori selettori di condizione. Se collegate un numero in virgola mobile alla condizione, LabVIEW arrotonda il valore all’intero pari più vicino. Se digitate un valore in virgola mobile nel selettore di condizione, il valore appare rosso ad indicare che dovete cancellare o modificare il valore prima che la struttura possa essere eseguita.

LabVIEW Corso Base I

6-4

 National Instruments Corporation


Lezione 6 Strutture Case e Sequence

Esercitazione 6-1

VI Square Root

Obiettivo: Utilizzare una struttura Case

Completate i passi seguenti per costruire un VI che verifichi se un numero è positivo. Se è così, il VI ne calcola la radice quadrata. Altrimenti il VI fornisce un messaggio di errore. Attenzione Non avviate il VI in modalità esecuzione continua.

Pannello frontale 65. Aprite un nuovo VI e costruite il seguente pannello frontale.

Schema a blocchi 66. Costruite il seguente schema a blocchi.

l. Inserite la struttura Case Functions»Structures.

che

si

trova

nella

palette

m. Cliccate sulle freccette di aumento e diminuzione per selezionare la condizione FALSE. n. Inserite la funzione Greater or Equal to 0? che si trova nella palette Functions»Comparison. Questa funzione fornisce il valore TRUE se Numeric è maggiore o uguale a 0. o. Cliccate con il tasto destro del mouse sulla costante numerica e selezionate Format & Precision dal menu rapido. Impostate Digits of Precision su 1, selezionate Floating Point Notation e cliccate sul pulsante OK. p. Inserite la funzione One Button Dialog che si trova nella palette Functions»Time & Dialog. Questa funzione visualizza una finestra di dialogo che contiene il messaggio Error…Negative Number. q. Cliccate con il tasto destro del mouse sul terminale message della funzione One Button Dialog, selezionate Create»Constant dal

 National Instruments Corporation

6-5

LabVIEW Corso Base I


Lezione 6

Strutture Case e Sequence

menu rapido, digitate Error…Negative Number e premete il tasto <Enter>. Fate riferimento alla Lezione 7, Stringhe e file di I/O, per ulteriori informazioni sulle stringhe. r. Selezionate la condizione TRUE e inserite la funzione Square Root che si trova nella palette Functions»Numeric, come mostrato nello schema a blocchi seguente. Questa funzione fornisce la radice quadrata di Numeric.

67. Salvate il VI come Square Root.vi. 68. Visualizzate il pannello frontale ed avviate il VI. Se Numeric è positivo, il VI esegue la condizione TRUE e fornisce la radice quadrata di Numeric. Se Numeric è negativo, il VI esegue la condizione FALSE, fornisce –99999.0 e visualizza una finestra di dialogo con il messaggio Error…Negative Number. 69. Chiudete il VI.

Fine dell’esercitazione 6-1

LabVIEW Corso Base I

6-6

 National Instruments Corporation


Lezione 6 Strutture Case e Sequence

Esercitazione 6-2

VI Temperature Control

Obiettivo: Utilizzare la struttura Case.

Completate i passi seguenti per creare un VI che rilevi quando una temperatura è al di fuori di un certo intervallo. Se la temperatura supera il limite, un LED si accende e suona un beep.

Pannello frontale 74. Aprite il VI Temperature Running Average, che avete costruito nell’esercitazione 4-5. 75. Modificate il pannello frontale come segue.

76. Cliccate con il tasto destro del mouse sul display del grafico e selezionate Visible Items»Digital Display dal menu rapido per visualizzare i valori digitali. 77. Salvate il VI come Temperature Control.vi.

 National Instruments Corporation

6-7

LabVIEW Corso Base I


Lezione 6

Strutture Case e Sequence

Schema a blocchi 78. Modificate lo schema a blocchi come segue. La condizione False della struttura Case è vuota.

a. Inserite la funzione Greater? che si trova nella palette Functions»Comparison. Questa funzione fornisce TRUE se la temperatura supera High Limit. Altrimenti la funzione fornisce FALSE. b. Inserite il VI Beep che si trova nella palette Functions»Graphics & Sound»Sound. Questo VI suona un beep se il terminale selettore della struttura Case riceve il valore TRUE. c. (Macintosh) Fornite i valori per i terminali d’ingresso del VI Beep. 79. Salvate il VI, perché lo utilizzerete più avanti nel corso. 80. Visualizzate il pannello frontale, inserite 80 in High Limit ed avviate il VI. Se il VI fornisce una temperatura più grande di High Limit, Warning si accende, il VI esegue la condizione TRUE e suona un beep. Se la temperatura è inferiore a High Limit, Warning si spegne, il VI esegue la condizione FALSE e non vengono emessi beep. 81. Chiudete il VI.

Fine dell’esercitazione 6-2

LabVIEW Corso Base I

6-8

 National Instruments Corporation


Lezione 6 Strutture Case e Sequence

B. Strutture Sequence Una struttura Sequence, mostrata a sinistra, contiene uno o più schemi a blocchi, o frame che vengono eseguiti in un certo ordine. Una struttura Sequence esegue il frame 0, poi il frame 1, poi il frame 2 fino all’ultimo. La struttura Sequence non termina l’esecuzione né fornisce dati fino a quando non viene eseguito l’ultimo frame. Utilizzate la struttura Sequence per controllare l’ordine di esecuzione quando non esiste una dipendenza naturale dei dati. Un nodo che riceve dati da un altro nodo dipende da esso per i dati e viene eseguito dopo che l’altro nodo ha terminato l’esecuzione. Dentro ogni frame di una struttura Sequence, come nel resto dello schema a blocchi, la dipendenza dei dati determina l’ordine di esecuzione dei nodi. I tunnel delle strutture Sequence possono avere solo una sorgente di dati, a differenza delle strutture Case. L’uscita può partire da ogni frame, ma i dati lasciano la struttura Sequence solo quando tutti i frame hanno completato l’esecuzione, non quando hanno completato l’esecuzione i frame individuali. Come nelle strutture Case, i dati ai tunnel d’ingresso sono disponibili per tutti i frame.

Variabili locali della struttura Sequence Per passare i dati da un frame al successivo, utilizzate un terminale locale della sequenza, mostrato a sinistra. Nel terminale locale della sequenza che contiene la sorgente dei dati compare una freccia rivolta verso l’esterno. Il terminale nei frame successivi contiene una freccia rivolta verso l’interno, ad indicare che il terminale è una sorgente di dati per quel frame. Non potete utilizzare il terminale locale della sequenza nei frame che precedono il primo in cui avete collegato il terminale locale della sequenza. Cliccate con il tasto destro del mouse sulla cornice e selezionate Add Sequence Local dal menu rapido per creare un terminale locale della sequenza. L’esempio seguente mostra una struttura Sequence a tre frame. Un terminale locale della sequenza nel frame 1 passa il valore che il VI Thermometer fornisce al frame 2, come indicato dalla freccia che punta verso l’interno del frame 2. Questo valore non è disponibile nel frame 0, come mostrato dal quadratino opaco.

 National Instruments Corporation

6-9

LabVIEW Corso Base I


Lezione 6

Strutture Case e Sequence

Esercitazione 6-3

VI Time to Match

Obiettivo: Utilizzare la struttura Sequence.

Completate i passi seguenti per costruire un VI che calcoli il tempo che serve per generare un numero casuale che corrisponde ad un numero specificato.

Pannello frontale 26. Aprite il VI Auto Match, che avete costruito nell’esercitazione 4-3. 27. Modificate il pannello frontale come segue.

f. Scegliete per Number to Match, Current Number e # of Iterations la rappresentazione I32. g. Scegliete per Time to Match la rappresentazione DBL a 3 cifre di precisione. 28. Salvate il VI come Time to Match.vi.

Schema a blocchi 29. Modificate lo schema a blocchi nel modo seguente.

LabVIEW Corso Base I

6-10

ď›™ National Instruments Corporation


Lezione 6 Strutture Case e Sequence

h. Inserite la struttura Sequence che si trova nella palette Functions»Structures. i. Cliccate con il tasto destro del mouse sulla cornice della struttura e selezionate Add Frame After dal menu rapido per aggiungere un frame. j. Inserite la funzione Tick Count (ms) che si trova nella palette Functions»Time & Dialog. Questa funzione legge il valore corrente dell’orologio del sistema operativo e fornisce il valore in millisecondi. 30. Salvate il VI. 31. Visualizzate il pannello frontale, inserite un numero in Number to Match ed avviate il VI. Nel frame 0, il VI esegue il Ciclo While finché Current Number non corrisponde con Number to Match. Nel frame 1, la funzione Tick Count (ms) legge l’orologio del sistema operativo. Il VI sottrae il nuovo valore dal valore iniziale e fornisce il tempo trascorso in secondi. Nota Se Time to Match è sempre 0.000, il VI potrebbe essere eseguito troppo

rapidamente. Avviate il VI con l’esecuzione evidenziata o portate il valore della costante numerica collegata alla funzione Multiply nel frame 0 ad un valore più grande, ad esempio 1000000. 32. Chiudete il VI.

Fine dell’esercitazione 6-3

 National Instruments Corporation

6-11

LabVIEW Corso Base I


Lezione 6

Strutture Case e Sequence

C. Formula ed Expression Node Utilizzate Formula Node ed Expression Node per svolgere operazioni matematiche nell’ambiente di LabVIEW. Per funzionalità più avanzate, potete collegarvi alle applicazioni matematiche di HiQ e MATLAB per sviluppare equazioni. HiQ e MATLAB sono pacchetti software che vi aiutano ad organizzare e visualizzare problemi matematici concreti, scientifici ed ingegneristici.

Formula Node Il Formula Node è un utile nodo basato su testo che potete utilizzare per svolgere calcoli matematici nello schema a blocchi. I Formula Node sono utili per le equazioni che hanno molte variabili o sono comunque complicate e quindi utilizzano codici testuali esistenti. Potete copiare ed incollare il codice testuale esistente in un Formula Node piuttosto che ricrearlo graficamente sullo schema a blocchi. Create i terminali di ingresso e uscita del Formula Node cliccando con il tasto destro del mouse sulla cornice del nodo e selezionando Add Input o Add Output dal menu rapido. Digitate l’equazione nella struttura. Ogni dichiarazione dell’equazione deve terminare con un punto e virgola (;). Il Formula Node può eseguire diverse operazioni. Fate riferimento al LabVIEW Help per ulteriori informazioni sulle funzioni, sulle operazioni e la sintassi per il Formula Node.

Expression Node Utilizzate Expression Nodes per calcolare espressioni o equazioni che contengono una singola variabile. Gli Expression Node sono utili quando un’equazione possiede una sola variabile ma è comunque complessa. Gli Expression Node utilizzano il valore che gli passate al terminale d’ingresso come valore della variabile. Il terminale di uscita fornisce il valore del calcolo.

LabVIEW Corso Base I

6-12

 National Instruments Corporation


Lezione 6 Strutture Case e Sequence

Esercitazione 6-4

VI Formula Node Exercise

Obiettivo: Utilizzare il Formula Node.

Completate i passi seguenti per costruire un VI che utilizzi il Formula Node per svolgere un’operazione matematica complessa e grafichi i risultati.

Pannello frontale 10. Aprite un nuovo VI e costruite il pannello frontale seguente.

Schema a blocchi 11. Costruite lo schema a blocchi seguente.

a. Inserite il Formula Node Functions»Structures.

che

si

trova

nella

palette

b. Create il terminale d’ingresso x cliccando con il tasto destro del mouse sul bordo sinistro e selezionando Add Input dal menu rapido. c. Create i terminali di uscita y e a cliccando con il tasto destro del mouse sul bordo sinistro e selezionando Add Output dal menu rapido. Dovete creare terminali di uscita per variabili temporanee come a. Nota

Quando create un terminale d’ingresso o di uscita dovete utilizzare un nome di variabile che corrisponda esattamente con quello nell’equazione, I nomi di variabili tengono conto delle lettere maiuscole e minuscole.

 National Instruments Corporation

6-13

LabVIEW Corso Base I


Lezione 6

Strutture Case e Sequence

d. Digitate le equazioni seguenti nel Formula Node, dove ** è l’operatore esponenziale. Fate riferimento al LabVIEW Help per ulteriori informazioni sulla sintassi per il Formula Node. a = tanh(x) + cos(x); y = a**3 + a;

12. Salvate il VI come Formula Node Exercise.vi. 13. Visualizzate il pannello frontale ed avviate il VI. Il grafico visualizza l’andamento dell’equazione y = f(x)3 + f(x), in cui f(x) = tanh(x) + cos(x). Durante ogni iterazione, il VI divide il valore del terminale di iterazione per 15.0. Il quoziente viene collegato al Formula Node, che calcola il valore della funzione. Il VI rappresenta la matrice come un grafico. 14. Chiudete il VI.

Fine dell’esercitazione 6-4

LabVIEW Corso Base I

6-14

 National Instruments Corporation


Lezione 6 Strutture Case e Sequence

D. Come evitare di abusare delle strutture Sequence Per ottenere vantaggio dal parallelismo intrinseco di labVIEW, evitate di abusare delle strutture Sequence. Le strutture Sequence garantiscono l’ordine di esecuzione e impediscono le operazioni parallele. Per esempio, compiti asincroni che utilizzano dispositivi di I/O, come PXI, GPIB, porte seriali e dispositivi DAQ, possono essere svolti con altre operazioni se le strutture Sequence non glielo impediscono. Le strutture Sequence nascondono anche sezioni dello schema a blocchi e interrompono il flusso naturale dei dati da sinistra a destra. Quando avete bisogno di controllare l’ordine di esecuzione, considerate di instaurare la dipendenza dei dati tra i nodi. Per esempio, potete utilizzare l’errore di I/O per controllare l’ordine di esecuzione dell’I/O. Inoltre non utilizzate le strutture Sequence se volete aggiornare un indicatore da frame differenti della struttura Sequence. Per esempio, un VI utilizzato in un’applicazione di test potrebbe avere un indicatore Status che visualizza il nome del test corrente in corso. Se ogni test è un subVI chiamato da un frame differente, non potete aggiornare l’indicatore da ogni frame, come mostrato dal filo rotto nello schema a blocchi seguente.

Siccome tutti i frame di una struttura Sequence vengono eseguiti prima che ogni dato esca dalla struttura, solo un frame può assegnare un valore all’indicatore Status. Invece utilizzate una struttura Case e un Ciclo While come mostrato nell’esempio seguente.

 National Instruments Corporation

6-15

LabVIEW Corso Base I


Lezione 6

Strutture Case e Sequence

Ogni condizione nella struttura Case è equivalente ad un frame della struttura Sequence. Ogni iterazione del Ciclo While esegue la condizione successiva. L’indicatore Status visualizza lo stato del VI per ogni condizione. L’indicatore Status viene aggiornato nella condizione prima di quella che chiama il corrispondente subVI perché i dati vengono passati all’esterno della struttura dopo ogni esecuzione di condizione. A differenza della struttura Sequence, una struttura Case può passare dati alla fine del Ciclo While durante una condizione qualsiasi. Per esempio, se c’è un errore mentre è in esecuzione il primo test, la struttura Case può passare FALSE al terminale condizionale alla fine del ciclo. Comunque, una struttura Sequence deve eseguire tutti i suoi frame anche se c’è un errore.

LabVIEW Corso Base I

6-16

 National Instruments Corporation


Lezione 6 Strutture Case e Sequence

Sommario, trucchi e consigli Ÿ

Una struttura Case ha due o più schemi a blocchi componenti, o condizioni. Solo uno schema a blocchi per volta è visibile, e la struttura esegue solo una condizione per volta. Se il terminale di selezione è booleano, la struttura ha la condizione TRUE e la condizione FALSE. Se il terminale di selezione è un intero, una stringa o un valore del tipo di quelli elencati, la struttura può avere fino a 231-1 condizioni.

Ÿ

Gli ingressi sono disponibili in tutti gli schemi a blocchi componenti, ma gli schemi a blocchi non hanno bisogno di utilizzare ciascun ingresso. Comunque, dovete definire un tunnel di uscita per ogni condizione. I tunnel di uscita non collegati appaiono come quadrati bianchi.

Ÿ

Una struttura Sequence contiene due o più schemi a blocchi componenti, o frame, che vengono eseguiti in ordine sequenziale. Una struttura Sequence esegue il frame 0, poi il frame 1, poi il frame 2 fino all’ultimo frame. La struttura Sequence non termina l’esecuzione né fornisce alcun dato finché non viene eseguito l’ultimo frame.

Ÿ

Per passare i dati da un frame al successivo, utilizzate un terminale locale di sequenza. Cliccate con il tasto destro del mouse sulla cornice della struttura e selezionate Add Sequence Local dal menu rapido per creare una variabile locale della sequenza.

Ÿ

I Formula Node sono utili per le equazioni che hanno molte variabili o sono altrimenti complicate e per utilizzare codici testuali esistenti. Ogni dichiarazione dell’equazione deve terminare con un punto e virgola (;).

Ÿ

Utilizzate gli Expression Node per calcolare le espressioni o le equazioni che contengono una sola variabile.

Ÿ

Per trarre vantaggio dal parallelismo intrinseco di LabVIEW, evitate l’abuso di strutture Sequence. Quando avete bisogno di controllare l’ordine di esecuzione, considerate di instaurare una dipendenza dei dati tra i nodi.

Ÿ

Non utilizzate le strutture Sequence se volete aggiornare un indicatore da frame differenti della struttura Sequence. Invece utilizzate la struttura Case e un Ciclo While.

 National Instruments Corporation

6-17

LabVIEW Corso Base I


Lezione 6

Strutture Case e Sequence

Esercizi aggiuntivi 4-15 Costruite un VI che utilizzi il Formula Node per calcolare le equazioni seguenti: y1 = x3 + x2 + 5 y2 = mx + b Utilizzate solo un Formula Node per entrambe le equazioni ed utilizzate un punto e virgola (;) dopo ogni equazione nel nodo. Salvate il VI come Equations.vi. 4-16 Costruite un VI che funzioni come una calcolatrice. Sul pannello frontale, utilizzate i controlli digitali per inserire due numeri e un indicatore digitale per visualizzare il risultato dell’operazione (Add, Subtract, Divide o Multiply) che il VI effettua sui due numeri. Utilizzate un controllo trasparente per sepcificare l’operazione da effettuare. Salvate il VI come Calculator.vi. 4-17 Modificate il VI Square Root, che avete costruito nell’esercitazione 6-1, in maniera tale che il VI effettui tutti i calcoli e la verifica delle condizioni utilizzando il Formula Node. Salvate il VI come Square Root 2.vi. Sfida

4-18 Costruite un VI che abbia due ingressi, Threshold e Input Array, e un’uscita, Output Array. Output Array contiene i valori da Input Array che sono più grandi di Threshold. Salvate il VI come Array Over Threshold.vi. Create un altro VI che generi una matrice di numeri casuali compresi tra 0 e 1 e utilizzi il VI Array Over Threshold per produrre una matrice con i valori più grandi di 0.5. Salvate il VI come Using Array Over Threshold.vi.

LabVIEW Corso Base I

6-18

 National Instruments Corporation


Lezione 6 Strutture Case e Sequence

Note

ď›™ National Instruments Corporation

6-19

LabVIEW Corso Base I



Lezione 7 Stringhe e I/O di file Le stringhe raggruppano sequenze di caratteri ASCII. Le operazioni di I/O con i file scambiano dati da e verso file.

Imparerete: AA. creare controlli e indicatori di stringa

A

BB. utilizzare diverse funzioni stringa

Ad

CC. effettuare operazioni di I/O su file

A

DD. formattare file di testo per l’utilizzo nei fogli elettronici

A

EE.Ad utilizzare VI di alto livello per I/O di file

ď›™ National Instruments Corporation

7-1

LabVIEW Corso Base I


Lezione 7

Stringhe e I/O di file

A. Stringhe Una stringa è una sequenza di caratteri ASCII visualizzabile o meno. Le stringhe forniscono un formato indipendente dalla piattaforma per le informazioni e per i dati. Alcune delle applicazioni più comuni delle stringhe sono: Ÿ

Creazione di semplici messaggi di testo.

Ÿ

Trasferimento di dati numerici come stringhe di caratteri agli strumenti e quindi conversione delle stringhe in numeri.

Ÿ

Memorizzazione di dati numerici su disco. Per memorizzare numeri in un file ASCII, dovete dapprima convertire i numeri in stringhe prima di scrivere su un file.

Ÿ

Trasferimento di informazioni all’utente tramite finestre di dialogo.

Sul pannello frontale le stringhe appaiono come tabelle, riquadri per l’immissione del testo ed etichette.

Creazione di controlli e indicatori di stringa Utilizzate i controlli e gli indicatori di stringa che si trovano nella palette Controls»String & Path per simulare riquadri per l’immissione del testo ed etichette. Utilizzate lo strumento Modifica o Testo per digitare o modificare del testo in un controllo di stringa. Utilizzate lo strumento Posiziona per ridimensionare un oggetto stringa del pannello frontale. Per minimizzare lo spazio che un oggetto stringa occupa, cliccate con il tasto destro del mouse sull’oggetto e selezionate l’opzione Show Scrollbar dal menu rapido. Cliccate con il tasto destro del mouse su un controllo o su un indicatore di stringa sul pannello frontale per selezionare i tipi di display mostrati nella tabella seguente. La tabella mostra anche un messaggio di esempio per ogni tipo di display. Tipo di display Normal Display

‘\’ Codes Display Password Display Hex Display

LabVIEW Corso Base I

Descrizione Visualizza i caratteri stampabili utilizzando il font del controllo. I caratteri non stampabili diventano riquadri. Visualizza i backslash per tutti i caratteri non stampabili.

Messaggio There are four display types. \ is a backslash.

There\sare\sfour\sdispl ay\stypes.\n\\\sis\sa\s backslash. Visualizza un asterisco per ogni *********************** ************** carattere compresi gli spazi. Visualizza il valore ASCII di 5468 6572 6520 6172 ogni carattere in hex invece del 6520 666F 7572 2064 6973 706C 6179 2074 carattere stesso. 7970 6573 2E0A 5C20 6973 2061 2062 6163 6B73 6C61 7368 2E

7-2

 National Instruments Corporation


Lezione 7 Stringhe e I/O di file

B. Funzioni di stringa Utilizzate le funzioni di stringa che si trovano nella palette Functions»String per scrivere e modificare stringhe sullo schema a blocchi. Le funzioni di stringa comprendono: Ÿ

String Lenght – Fornisce il numero di caratteri in una stringa, compresi i caratteri di spazio. Per esempio, la funzione String Lenght fornisce una lenght di 19 per la stringa seguente: The quick brown fox

Ÿ

Concatenate Strings – Concatena stringhe d’ingresso e matrici 1D di stringhe in un’unica stringa di uscita. Ridimensionate la funzione per aumentare il numero di ingressi. Per esempio, concatenate la stringa precedente con la seguente matrice di stringhe: jumped

over

the

lazy

dog

La funzione Concatenate Strings fornisce la stringa seguente: The quick brown fox jumped over the lazy dog.

Ÿ

String Subset – Fornisce la sottostringa che inizia da offset e contiene un numero di caratteri pari a lenght. L’offset del primo carattere nella stringa è 0. Per esempio, se utilizzate la stringa precedente come ingresso, la funzione String Subset fornisce la sottostringa seguente per un offset di 4 e una lenght di 5: quick

Ÿ

Match Pattern – Cerca una regular expression in una stringa che inizia da offset, e se trova una corrispondenza, divide la stringa in tre sottostringhe. Se non viene trovata una corrispondenza, match substring è vuoto e offset past match è –1. Per esempio, utilizzate una regular expression di : e utilizzate la stringa seguente come ingresso: VOLTS DC: +1.22863E+1;

La funzione Match Pattern fornisce un before substring di VOLTS DC, un match substring di :, un after substring di +1.22863E+1;, e un offset past match di 9.

Stringhe e numeri Utilizzate le funzioni Format Into String e Scan From String per convertire stringhe in numeri o numeri in stringhe. La funzione Format Into String converte un numero in una stringa e la funzione Scan From String converte una stringa in un numero. Entrambe queste funzioni hanno dei cluster error in e error out.

 National Instruments Corporation

7-3

LabVIEW Corso Base I


Lezione 7

Stringhe e I/O di file

Conversione di numeri in stringhe Format Into String converte arguments di un qualsiasi formato, come quello numerico, in una stringa. Ridimensionate la funzione per incrementare il numero di arguments. Per esempio, la funzione Format Into String fornisce la seguente stringa per un format string di %.4f, una input string di Voltage is con uno spazio a seguire e un argument di 1.28: Voltage is 1.2800

In format string, % inizia la specifica di formato, . inizia la precisione, 4 indica il numero di cifre alla destra del punto decimale e f indica un numero a virgola mobile con formato frazionario. Cliccate con il tasto destro del mouse sulla funzione e selezionate Edit Format String dal menu rapido per creare o modificare una format string. Fate riferimento al LabVIEW Help per ulteriori informazioni sulla sintassi per la specifica di formato.

Conversione di stringhe in numeri Scan From String converte una stringa contenente caratteri numerici validi, come 0-9, +, -, e, E e il punto (.) in un numero. La funzione inizia verificando la input string che si trova in initial search location. La funzione può effettuare la scansione di input string in diversi tipi di dato, come numeri o booleani, basandosi su format string. Ridimensionate la funzione per incrementare il numero di outputs. Per esempio, utilizzate una format string di %f, una initial search location di 8 e la stringa seguente come input string: VOLTS DC+1.28E+2

La funzione Scan From String fornisce 128.00. In format string, % inizia la specifica di formato e f indica un numero a virgola mobile con formato frazionario. Cliccate con il tasto destro del mouse sulla funzione e selezionate Edit Scan String dal menu rapido per creare o modificare una format string. Fate riferimento al LabVIEW Help per ulteriori informazioni sulla sintassi per la specifica di formato.

LabVIEW Corso Base I

7-4

ď›™ National Instruments Corporation


Lezione 7 Stringhe e I/O di file

Esercitazione 7-1

VI Build String

Obiettivo: Utilizzare le funzioni Format Into String, Concatenate Strings e String Lenght. Completate i passi seguenti per costruire un VI che converta un numero in una stringa, concateni la stringa con un’altra per formare un’unica stringa di uscita, e determini la lunghezza della stringa di uscita. Il VI confronta anche una sequenza nella stringa e converte la stringa restante in un numero.

Pannello frontale 70. Aprite un nuovo VI e costruite il seguente pannello frontale.

a. Cliccate con il tasto destro del mouse su String 2 e selezionate ‘\’ Codes Display dal menu rapido. b. Portate la rappresentazione di String Lenght e Offset Past Match a I32.

Schema a blocchi 71. Costruite lo schema a blocchi seguente.

 National Instruments Corporation

7-5

LabVIEW Corso Base I


Lezione 7

Stringhe e I/O di file

s. Inserite la funzione Format Into String che si trova nella palette Functions»String. Questa funzione converte Numeric in una stringa. t. Cliccate con il tasto destro del mouse sulla funzione Format Into String e selezionate Edit Format String dal menu rapido per visualizzare la finestra di dialogo Edit Format String. u. Contrassegnate Use specified precision e digitate 4 nel riquadro di testo corrispondente per creare una format string che converta Numeric in una stringa con quattro cifre dopo il punto decimale. v. Cliccate sul pulsante OK. LabVIEW crea una format string di %.4f utilizzando le opzioni prescelte. w. Utilizzate lo strumento Testo per digitare uno spazio su entrambi i lati della costante %.4f e premete i tasti <Shift-Enter> perché Numeric appaia con gli spazi sui due lati in Combined String. x. Cliccate con il tasto destro del mouse sulla costante e selezionate ‘\’ Codes Display dal menu rapido. Gli spazi che avete digitato diventano \s. y. Inserite la funzione Concatenate String che si trova nella palette Functions»String. Questa funziona concatena stringhe d’ingresso in un’unica stringa di uscita. z. Inserite la funzione String Lenght che si trova nella palette Functions»String. Questa funziona fornisce il numero di caratteri in Combined String. aa. Inserite la funzione Match Pattern che si trova nella palette Functions»String. Questa funziona cerca in String 2 due punti. bb. Cliccate con il tasto destro del mouse sul terminale d’ingresso regular expression, selezionate Create»Constant dal menu rapido, digitate due punti (:) e premete i tasti <Shift-Enter>. cc. Inserite la funzione Scan from String che si trova nella palette Functions»String. Questa funzione converte la stringa dopo i due punti in un numero. 72. Visualizzate il pannello frontale e create l’icona e il riquadro dei connettori seguenti per poter utilizzare il VI come subVI più avanti nel corso. Fate riferimento alla Lezione 3, Creazione di un subVI, per ulteriori informazioni sulla creazione di icone e riquadro dei connettori.

LabVIEW Corso Base I

7-6

 National Instruments Corporation


Lezione 7 Stringhe e I/O di file

73. Salvate il VI come Build String.vi perché lo utilizzerete più avanti nel corso. 74. Cambiate i valori dei controlli del pannello frontale ed avviate il VI. Il VI concatena Header, Numeric e Trailer in Combined String e visualizza la lunghezza della stringa. Il VI cerca anche i due punti in String 2, converte la stringa che segue i due punti in Numeric Out e visualizza l’indice del primo carattere dopo i due punti in Offset Past Match. 75. Salvate e chiudete il VI.

Fine dell’esercitazione 7-1

 National Instruments Corporation

7-7

LabVIEW Corso Base I


Lezione 7

Stringhe e I/O di file

C. VI e Funzioni per I/O di file Le operazioni di I/O con i file consentono di trasferire dati da e verso file. Utilizzate i VI File I/O e le funzioni che si trovano nella palette Functions»File I/O per trattare tutti gli aspetti dell’I/O di file, compresi i seguenti: Ÿ

Apertura e chiusura di file di dati

Ÿ

Lettura di dati da file e scrittura su file

Ÿ

Lettura e scrittura di file contenenti fogli elettronici

Ÿ

Spostamento e ridenominazione di file e directory

Ÿ

Modifica delle caratteristiche dei file

Ÿ

Creazione, modifica e lettura di un file di configurazione

VI File I/O ad alto livello Utilizzate i VI File I/O ad alto livello che si trovano nella riga superiore della palette Functions»File I/O per svolgere le comuni operazioni di I/O. Fate riferimento alla Sezione E, VI File I/O ad alto livello, per ulteriori informazioni sui VI File I/O ad alto livello. Potete risparmiare tempo e sforzi nella programmazione utilizzando i VI ad alto livello per scrivere e leggere su file. I VI ad alto livello svolgono operazioni di lettura e di scrittura oltre all’apertura e alla chiusura di file. Se c’è un errore, i VI ad alto livello visualizzano una finestra di dialogo che descrive l’errore. Potete scegliere se fermare l’esecuzione o continuare.

VI e funzioni File I/O a basso livello Utilizzate i VI e le funzioni File I/O a basso livello che si trovano nella riga di mezzo della palette Functions»File I/O e le funzioni Advanced File I/O che si trovano nella palette Functions»File I/O»Advanced File Functions per controllare ogni operazione di I/O di file individualmente. Utilizzate le principali funzioni a basso livello per creare o aprire un file, scrivere o leggere dati su file e chiudere file. I VI a basso livello e le funzioni possono soddisfare la maggior parte delle esigenze di I/O su file. Fate riferimento a LabVIEW Basics II Course Manual per ulteriori informazioni sulle funzioni Advanced File I/O.

Fondamenti sull’I/O di file Una tipica operazione di I/O su file comprende il processo seguente. 1. Create o aprite un file. Indicate dove risiede un file esistente o dove volete creare un nuovo file specificando il percorso o rispondendo ad una finestra di dialogo per indirizzare LabVIEW sulla posizione del

LabVIEW Corso Base I

7-8

 National Instruments Corporation


Lezione 7 Stringhe e I/O di file

file. Dopo che il file è stato aperto, un codice numerico rappresenta il file. Fate riferimento alla sezione Salvataggio dei dati in un file nuovo o esistente per maggiori informazioni sui codici numerici. 2. Leggete o scrivete su file. 3. Chiudete il file. Utilizzate i seguenti VI e funzioni per svolgere operazioni di I/O di base su file: Ÿ

Open/Create/Replace File – Apre o sostituisce un file esistente o crea un nuovo file. Se file path è vuoto, il VI visualizza una finestra di dialogo da cui potete selezionare un file nuovo oppure esistente.

Ÿ

Read File – Legge dati dal file specificato in refnum e li restituisce in data, dove count è la quantità di dati da leggere. La lettura comincia in una posizione specificata da pos mode e pos offset e dipende dal formato del file specificato.

Ÿ

Write File – Scrive i dati sul file specificato da refnum. La scrittura inizia nella posizione specificata da pos mode e pos offset per file a flusso di dati e alla fine del file per file di datalog.

Ÿ

Close File – Chiude il file specificato da refnum.

Gestione degli errori I VI e le funzioni a basso livello File I/O forniscono informazioni sugli errori. Collegate le informazioni sugli errori dall’inizio del VI fino alla fine. Includete un VI di gestione degli errori, come il VI Simple Error Handler che si trova nella palette Functions»Time & Dialog, alla fine del VI per determinare se il VI è stato eseguito senza errori. Utilizzate i cluster error in e error out in ogni VI che utilizzate o costruite per passare le informazioni di errore sul VI. Quando il VI è in esecuzione, LabVIEW verifica se ci sono errori ad ogni nodo di esecuzione. Se LabVIEW non trova errori, il nodo viene eseguito normalmente. Se LabVIEW rileva un errore, il nodo passa l’errore al nodo successivo senza eseguirlo. Il nodo successivo fa la stessa cosa e così via. Alla fine del flusso di esecuzione, LabVIEW riporta l’errore.

Cluster di errore I cluster di errore che si trovano nella palette Controls»Array & Cluster comprendono le seguenti componenti di informazione: Ÿ

status è un valore booleano che riporta TRUE se avviene un errore.

Ÿ

code è un intero a 32 bit che identifica numericamente l’errore. Un codice di errore diverso da zero abbinato allo stato di FALSE segnala un’avvertimento piuttosto che un errore fatale.

 National Instruments Corporation

7-9

LabVIEW Corso Base I


Lezione 7

Stringhe e I/O di file

Ÿ

source è una stringa che identifica dove è avvenuto l’errore. Fate riferimento al LabVIEW Basics II Course Manual per ulteriori informazioni sui cluster di errore.

Salvataggio dei dati in un file nuovo o esistente Potete scrivere un qualsiasi tipo di dato in un file che avete aperto o creato con le funzioni e i VI File I/O. Se altri utenti o applicazioni hanno bisogno di accedere al file, scrivete i dati di stringa in un formato ASCII sul file. Potete accedere ai file sia da programma o attraverso una finestra di dialogo. Per accedere ad un file attraverso una finestra di dialogo, non collegate file path nel VI Open/Create/Replace File. Potete risparmiare tempo collegando da programma il nome file e il percorso al VI. La tabella seguente descrive come vengono organizzati i percorsi di file. Piattaforma Windows

Percorso Consiste nel nome del drive, due punti, nomi di directory separati da backslash e nome file. Per esempio, c:\testdata\test1.dat è il percorso ad un file che si chiama test1.dat nella directory testdata.

UNIX

Consiste in nomi di directory separati da slash e nome file. Per esempio, /home/testdata/test1.dat è il percorso ad un file di nome test1.dat nella directory testdata nella directory /home. I nomi file e i percorsi tengono conto di maiuscole e minuscole.

Macintosh

Consiste in nome del volume (nome del disco), due punti, nomi di cartelle separate da due punti e nome file. Per esempio, Hard Disk:testdata:test1.dat è il percorso ad un file che si chiama test1.dat in una cartella chiamata testdata su un disco Hard Disk.

L’esempio seguente mostra come scrivere dati stringa su un file esistente collegando da programma nome file e percorso.

LabVIEW Corso Base I

7-10

 National Instruments Corporation


Lezione 7 Stringhe e I/O di file

Il VI Open/Create/Replace File apre il file test1.dat. Il VI genera anche un refnum e un cluster di errore. Un codice di riferimento, o refnum, è un identificatore unico per un oggetto, come un file, un dispositivo o un collegamento in rete. Quando aprite un file, un dispositivo o un collegamento in rete, LabVIEW crea un refnum associato a quel file, dispositivo o collegamento in rete. Tutte le operazioni che svolgete file aperti, file, dispositivi o collegamenti in rete utilizza i refnum per identificare ciascun oggetto. Il cluster di errore e refnum passano in sequenza da un nodo al successivo. Poiché un nodo non può essere eseguito finché non ha ricevuto tutti gli ingressi, il trasferimento di questi due parametri forza l’esecuzione ordinata dei nodi. Il VI Open/Create/Replace File passa refnum e il cluster di errore alla funzione Write File, che scrive i dati sul disco. La funzione Close File chiude il file dopo aver ricevuto il cluster di errore e refnum da Write File. Il VI Simple Error Handler esamina il cluster di errore e visualizza una finestra di dialogo se c’è un errore. In caso di errore in un nodo, i nodi successivi non vengono eseguiti e il VI passa il cluster di errore al VI Simple Error Handler.

 National Instruments Corporation

7-11

LabVIEW Corso Base I


Lezione 7

Stringhe e I/O di file

Esercitazione 7-2

VI File Writer

Obiettivo: Scrivere dati su un file.

Completate i passi seguenti per costruire un VI che concateni una stringa con messaggio, un numero e una stringa di unità su un file. Nell’esercitazione 7-3 costruirete un VI per leggere il file e visualizzare il suo contenuto.

Pannello frontale 33. Aprite un nuovo VI e costruite il pannello frontale seguente.

a. Inserite un indicatore di percorso sulla palette Controls»String & Path. Questo indicatore visualizza il percorso dei file dati che avete creato. b. Cliccate con il tasto destro del mouse su String to Write e selezionate Visible Items»Scrollbar dal menu rapido per visualizzare una barra di scorrimento.

Schema a blocchi 34. Costruite lo schema a blocchi seguente.

a. Inserite il VI Build String, che avete costruito nell’esercitazione 71. Questo VI concatena le tre stringhe d’ingresso in una stringa combinata. b. Inserite il VI Open/Create/Replace File che si trova nella palette Functions»File I/O. Questo VI visualizza una finestra di dialogo per aprire o creare un file.

LabVIEW Corso Base I

7-12

 National Instruments Corporation


Lezione 7 Stringhe e I/O di file

c. Cliccate con il tasto destro del mouse sul terminale d’ingresso prompt e selezionate Create»Constant dal menu rapido per creare la costante Enter Filename. d. Cliccate con il tasto destro del mouse sul terminale d’ingresso function e selezionate Create»Constant dal menu rapido. Utilizzate lo strumento Modifica per selezionare create or replace. e. Inserite la funzione Write File che si trova nella palette Functions»File I/O. Questa funzione scrive le stringhe concatenate sul file. f. Inserite la funzione Close File che si trova nella palette Functions»File I/O. Questa funzione chiude il file. g. Inserite il VI Simple Error handler che si trova nella palette Functions»Time & Dialog. Questo VI verifica il cluster di errore e visualizza una finestra di dialogo in caso di errore. 35. Salvate il VI come File Writer.vi. 36. Cambiate i valori dei controlli del pannello frontale ed avviate il VI. Compare una finestra di dialogo Enter Filename. 37. Digitate demofile.txt e cliccate sul pulsante Save o OK. Il VI scrive i valori String to Write, Numeric to Write e Unit to Write sul file.

Fine dell’esercitazione 7-2

 National Instruments Corporation

7-13

LabVIEW Corso Base I


Lezione 7

Stringhe e I/O di file

Esercitazione 7-3

VI File Reader

Obiettivo: Leggere dati da un file.

Completate i passi seguenti per costruire un VI che legga il file creato nell’esercitazione 7-2 e visualizzi le informazioni in un indicatore di stringa.

Pannello frontale 15. Aprite un nuovo VI e costruite il pannello frontale seguente utilizzando il controllo di percorso che si trova nella palette Controls»String & Path.

Schema a blocchi 16. Costruite lo schema a blocchi seguente.

e. Inserite il VI Open/Create/Replace File che si trova nella palette Functions»File I/O. Questo VI visualizza una finestra di dialogo che utilizzate per aprire o creare un file. f. Cliccate con il tasto destro del mouse sul terminale d’ingresso prompt e selezionate Create»Constant dal menu rapido per creare la costante Select Filename. g. Cliccate con il tasto destro del mouse sul terminale d’ingresso function e selezionate Create»Constant dal menu rapido. Utilizzate lo strumento Modifica per selezionare open. h. Inserite la funzione Read File che si trova nella palette Functions»File I/O. Questa funzione legge un numero di byte pari a count dal file che parte dall’inizio del file, i. Inserite la funzione Close File che si trova nella palette Functions»File I/O. Questa funzione chiude il file.

LabVIEW Corso Base I

7-14

 National Instruments Corporation


Lezione 7 Stringhe e I/O di file

j. Inserite il VI Simple Error Handler che si trova nella palette FunctionsÂťTime & Dialog. Questo VI verifica il cluster di errore e visualizza una finestra di dialogo in caso di errore. 17. Salvate il file come File Reader.vi. 18. Visualizzate il pannello frontale e utilizzate lo strumento Modifica per cliccare sul pulsante Browse nel controllo di percorso. 19. Andate su demofile.txt e cliccate sul pulsante Open o OK. 20. Avviate il VI. String Read from File visualizza il contenuto del file. Sfida

21. Modificate il VI in maniera tale che i numeri siano analizzati e visualizzati in un indicatore digitale. Dopo aver finito, salvate e chiudete il VI. Consiglio

Utilizzate la funzione Match Pattern per cercare il primo carattere

numerico.

Fine dell’esercitazione 7-3

ď›™ National Instruments Corporation

7-15

LabVIEW Corso Base I


Lezione 7

Stringhe e I/O di file

D. Formattazione di stringhe per fogli elettronici Per scrivere dati su un file per fogli elettronici, dovete formattare la stringa come stringa per fogli elettronici, che è una stringa che include delimitatori, come tab. In molte applicazioni su fogli elettronici, il carattere tab separa le colonne e il carattere di fine linea separa le righe. Nota

Utilizzate la costante di fine linea che si trova nella palette Functions»String, per garantire la portabilità dei VI tra piattaforme. (Windows) La costante inserisce un ritorno a capo e un nuova linea. (Macintosh) La costante inserisce un ritorno a capo. (UNIX) La costante inserisce una nuova linea. Utilizzate la funzione Format Into File per formattare dati di tipo stringa, numeri, percorsi e booleani come testo e scrivete il testo in un file. Spesso potete utilizzare questa funzione invece di formattare separatamente la stringa con la funzione Format Into String e scrivere la stringa risultante con la funzione Write Caracters To File VI o Write function. Utilizzate la funzione Format Into File per determinare l’ordine in cui i dati appaiono nel file testo. Comunque non potete usare questa funzione per accodare dati in un file o sovrascrivere dati esistenti in un file. Per queste operazioni, utilizzate la funzione Format Into String con la funzione Write File. Potete collegare un refnum o percorso al terminale input file o potete lasciare questo ingresso scollegato per una finestra di dialogo che vi richieda il nome file. Nello schema a blocchi seguente, il VI Open/Create/Replace File apre un file e il Ciclo For viene eseguito cinque volte. La funzione Format Into String converte il contatore d’iterazione e il numero casuale in stringhe e inserisce il tab e i caratteri di fine linea nelle posizioni corrette per creare due colonne e una riga nel formato del foglio elettronico. Dopo che il ciclo ha completato cinque iterazioni, il file si chiude e il VI verifica la condizione di errore.

LabVIEW Corso Base I

7-16

 National Instruments Corporation


Lezione 7 Stringhe e I/O di file

Questo VI crea il seguente file testo, in cui una freccia (→) indica un tab e un simbolo di paragrafo (¶) indica un carattere di fine linea. 0→0.798141¶ 1→0.659364¶ 2→0.581409¶ 3→0.526433¶ 4→0.171062¶

Aprite il file precedente in un’applicazione di fogli elettronici per visualizzare il seguente foglio elettronico.

 National Instruments Corporation

7-17

LabVIEW Corso Base I


Lezione 7

Stringhe e I/O di file

Esercitazione 7-4

VI Temperature Logger

Obiettivo: Salvare dati su un file in un formato che possa essere letto da un foglio elettronico o da un word processor. Completate i passi seguenti per salvare l’ora e la temperatura corrente in un file dati.

Pannello frontale 1. Aprite il VI Temperature Control, che avete costruito nell’esercitazione 6-2, e salvatelo come Temperature Logger.vi. Non dovete modificare il pannello frontale seguente.

Schema a blocchi 2. Modificate lo schema a blocchi come segue.

LabVIEW Corso Base I

7-18

ď›™ National Instruments Corporation


Lezione 7 Stringhe e I/O di file

a. Inserite il VI Open/Create/Replace File che si trova nella palette Functions»File I/O. Questo VI visualizza una finestra di dialogo che utilizzate per aprire o creare un file. b. Inserite la funzione Get Date/Time String che si trova nella palette Functions»Time & Dialog. Questa funzione fornisce l’ora, in formato stringa, in cui è stata effettuata la misura di temperatura. c. Inserite la costante booleana TRUE che si trova nella palette Functions»Boolean. Questa costante imposta la funzione per includere i secondi nella stringa. d. Inserite la funzione Format Into File che si trova nella palette Functions»File I/O. Questa funzione converte la misura di temperatura in una stringa e la scrive su file con dati formattati. e. Inserite la costante tab e la costante di fine linea che si trovano nella palette Functions»String. f. Inserite la funzione Unbundle by Name che si trova nella palette Functions»Cluster. Essa rimuove status dal cluster di errore. g. Inserite le funzioni Not e And che si trovano nella palette Functions»Boolean. Le funzioni Not e And impongono al terminale condizionale di continuare mentre Power è TRUE e non ci sono errori. h. Inserite la funzione Close File che si trova nella palette Functions»File I/O. Questa funzione chiude il file. i. Inserite il VI Simple Error Handler che si trova nella palette Functions»Time & Dialog. Questo VI verifica il cluster di errore e visualizza una finestra di dialogo in caso di errore. 3. Salvate il VI, perché lo utilizzerete più avanti nel corso. 4. Avviate il VI. Compare una finestra di dialogo Enter Filename. 5. Digitate temp.txt e cliccate sul pulsante Save o OK. Il VI crea un file chiamato temp.txt. Il VI prende le letture ogni mezzo secondo e salva i dati di ora e temperatura su un file fino a quando cliccate l’interruttore Power o in caso di errore. Quando il VI ha terminato, chiude il file. 6. Chiudete il VI. 7. Aprite un word processor o un’applicazione basata su fogli elettronici, come (Windows) Notepad o WordPad, (Macintosh) TechText o (Unix) Text Editor. 8. Aprite temp.txt. L’ora appare nella prima colonna e i dati di temperatura nella seconda. 9. Uscite dal word processor o dall’applicazione su fogli elettronici e tornate a LabVIEW.

Fine dell’esercitazione 7-4

 National Instruments Corporation

7-19

LabVIEW Corso Base I


Lezione 7

Stringhe e I/O di file

E. VI ad alto livello per l’I/O di File Utilizzate i VI File I/O ad alto livello che si trovano nella riga superiore della palette Functions»File I/O per eseguire le comuni operazioni di I/O, come la scrittura o la lettura dai seguenti tipi di dati: Ÿ

Caratteri su o da file testo

Ÿ

Linee da file testo

Ÿ

Matrici 1D o 2D di numeri a singola precisione su o da file di testo di fogli elettronici

Ÿ

Matrici 1D o 2D di numeri a singola precisione su o interi a 16 bit con segno su o da file binari

I VI File I/O ad alto livello comprendono:

LabVIEW Corso Base I

Ÿ

Write Characters to File – Scrive una stringa di caratteri su un nuovo file o la accoda ad un file esistente. Il VI apre o crea il file prima di scriverci e lo chiude successivamente.

Ÿ

Read Characters From File – Legge number of characters da un file che inizia in start of read offset. Il VI apre o crea il file prima di leggerlo e lo chiude successivamente.

Ÿ

Write to Spreadsheet File – Converte una matrice 2D o 1D di numeri in singola precisione in una stringa di testo e scrive la stringa su un nuovo file o la accoda ad un file esistente. Potete anche trasporre i dati. Il VI apre o crea il file prima di scriverci e lo chiude successivamente. Potete utilizzare questo VI per creare un file testo leggibile dalla maggior parte delle applicazioni che utilizzano fogli elettronici.

Ÿ

Read From Spreadsheet File – Legge un numero specificato di linee o righe da un file di testo numerico iniziando da start of read offset e converte i dati in una matrice 2D di numeri in singola precisione. Il VI apre il file prima di leggerlo e lo chiude successivamente. Potete utilizzare questo VI per leggere un file di fogli elettronici salvato in formato testo.

Ÿ

Read Lines From File – Legge un numero specificato di linee da un file di testo o binario iniziando da start of read offset. Il VI apre il file prima di leggerlo e lo chiude successivamente.

Ÿ

Binary Files VI – Legge e scrive su file in formato binario. I dati possono essere interi o numeri in singola precisione a virgola mobile.

7-20

 National Instruments Corporation


Lezione 7 Stringhe e I/O di file

Tabelle Utilizzate il controllo tabella che si trova nella palette Controls»List & Table per creare una tabella sul pannello frontale. Ogni cella in una tabella è una stringa ed ogni cella risiede in una colonna e in una riga. Perciò una tabella è un display di una matrice 2D di stringhe. L’illustrazione seguente mostra una tabella e tutte le sue parti.

1 2 3 4

Cella indicata da valori indice Intestazioni di colonna Barra di scorrimento verticale Barra di scorrimento orizzontale

5 6 7

Intestazioni di riga Indice orizzontale Indice verticale

Definite le celle nella tabella utilizzando lo strumento Modifica o quello Testo per selezionare una cella e digitare del testo nella cella selezionata. L’indicatore controllo di tabella è una matrice 2D di stringhe, quindi potete convertire matrici numeriche 2D in matrici stringa 2D prima che voi possiate visualizzarle in un indicatore di tabella. Le intestazioni di riga e di colonna non vengono visualizzate automaticamente come in un foglio elettronico. Dovete creare matrici stringa 1D per le intestazioni di riga e di colonna.

 National Instruments Corporation

7-21

LabVIEW Corso Base I


Lezione 7

Stringhe e I/O di file

Esercitazione 7-5 Obiettivo:

VI Spreadsheet Example

Salvare una matrice 2D in un file testo affinché un’applicazione con fogli elettronici possa accedere al file e visualizzare i dati numerici in una tabella. Nell’esercitazione 7-4. Avete formattato una stringa e i tab hanno separato le colonne e i fine linea le righe. Completate i passi seguenti per esaminare un VI che salva matrici di numeri in un file in un formato che potete utilizzare con fogli elettronici.

Pannello frontale 1. Aprite il VI Spreadsheet Example. Il pannello frontale seguente è già costruito.

2. Avviate il VI. Il VI genera una matrice 2D di 128 righe x 3 colonne. La prima colonna contiene dati per una forma d’onda sinusoidale, la seconda colonna contiene dati per una forma d’onda di rumore e la terza colonna contiene dati per una forma d’onda cosinusoidale. Il VI rappresenta ogni colonna in un grafico e visualizza i dati in una tabella. Dopo che il VI ha visualizzato i dati, compare una finestra di dialogo. 3. Digitate wave.txt e cliccate sul pulsante Successivamente esaminerete questo file.

LabVIEW Corso Base I

7-22

Save

o

OK.

 National Instruments Corporation


Lezione 7 Stringhe e I/O di file

Schema a blocchi 4. Visualizzate lo schema a blocchi seguente per esaminarlo.

Ÿ

Il VI Sine Pattern che si trova nella palette Functions»Analyze»Signal Processing»Signal Generation fornisce una matrice numerica di 128 elementi contenente un pattern sinusoidale. La costante 90.0 nel secondo nodo specifica la fase del pattern sinusoidale o cosinusoidale.

Ÿ

Il VI Uniform White Noise che si trova nella palette Functions»Analyze»Signal Processing»Signal Generation fornisce una matrice numerica di 128 elementi contenenti un pattern di rumore.

Ÿ

La funzione Build Array che si trova nella palette Functions»Array crea la seguente matrice 2D dalla matrice del seno, matrice del rumore e del coseno. Matrice del seno Matrice del rumore Matrice del coseno

Ÿ

 National Instruments Corporation

La funzione Transpose 2D Array che si trova nella palette Functions»Array risistema gli elementi della matrice 2D affinché l’elemento [i,j] diventi l’elemento [j,i] come segue.

7-23

LabVIEW Corso Base I


Lezione 7

Stringhe e I/O di file

Ÿ

Il VI Write To Spreadsheet File che si trova nella palette Functions»File I/O formatta la matrice 2D in una stringa per fogli elettronici e scrive la stringa in un file. La stringa ha il formato seguente, in cui una freccia (→) indica un tab e un simbolo di paragrafo (¶) indica un carattere di fine linea.

Ÿ

La funzione Number To Fractional String che si trova nella palette Functions»String»String/Number Conversion converte una matrice di numeri in una matrice di stringhe che la tabella visualizza.

5. Chiudete il VI. Nota

Questo esempio memorizza solo tre matrici nel file. Per includere più matrici, aumentate il numero di ingressi della funzione Build Array. 6. (Opzionale) Aprite il file utilizzando un word processor o un’applicazione su fogli elettronici e visualizzate il suo contenuto. a. Aprite un word processor o un’applicazione basata su fogli elettronici, come (Windows) Notepad o WordPad, (Macintosh) TeachText o (Unix) Text Editor. b. Aprite wave.txt. I dati della forma d’onda sinusoidale appaiono nella prima colonna, i dati della forma d’onda casuale nella seconda e i dati della forma d’onda cosinusoidale nella terza. c. Uscite dal word processor o dall’applicazione basata su fogli elettronici e ritornate a LabVIEW.

Fine dell’esercitazione 7-5

LabVIEW Corso Base I

7-24

 National Instruments Corporation


Lezione 7 Stringhe e I/O di file

Esercitazione 7-6 Obiettivo:

Sfida

VI Temperature Application

Applicare tutto quello che avete imparato nel corso strutture, registri a scorrimento, variabili locali di sequenze, grafici di forme d’onda, matrici, diagrammi, I/O di file e altro. Create un VI con il seguente pannello frontale che completi i passi seguenti e salvate il VI come Temperature Application.vi.

1. Prendete una misura di temperatura una volta al secondo fino a quando fermate il VI o c’è un errore. 2. Visualizzate sia la temperatura corrente che la media delle ultime tre misure su un grafico di forme d’onda. 3. Se la temperatura supera un limite, accendete un LED. 4. Dopo ogni misura, memorizzate la data, l’ora con i secondi, la temperatura, la media delle ultime tre misure e un messaggio di una parola che descriva se la temperatura è normale o al di sopra del limite. Memorizzate i dati cosicché ogni voce appaia in una colonna del foglio elettronico come mostrato nell’esempio seguente.

 National Instruments Corporation

7-25

LabVIEW Corso Base I


Lezione 7

Stringhe e I/O di file

5. Dopo aver fermato l’esecuzione, visualizzate sia la riga dati di temperatura che la curva di migliore approssimazione in un grafico XY e visualizzate le temperature media, massima e minima. Suggerimento Iniziate con il VI Temperature Logger, che avete realizzato nell’esercitazione 7-4. Per completare il passo 5, utilizzate porzioni del VI Temperature Analysis che avete realizzato nell’esercitazione 5-3.

Fine dell’esercitazione 7-6

LabVIEW Corso Base I

7-26

 National Instruments Corporation


Lezione 7 Stringhe e I/O di file

Sommario, trucchi e consigli Ÿ

Le stringhe raggruppano sequenze di caratteri ASCII. Utilizzate il controllo e l’indicatore di stringa che si trova nella palette Controls»String & Path per simulare riquadri per l’immissione del testo ed etichette.

Ÿ

Per minimizzare lo spazio che un oggetto stringa occupa, cliccate con il tasto destro del mouse sull’oggetto e selezionate l’opzione Show Scrollbar dal menu rapido.

Ÿ

Utilizzate le funzioni String che si trovano nella palette Functions»String per creare e modificare stringhe sullo schema a blocchi.

Ÿ

Utilizzate le funzioni Format Into String e Scan From String per convertire stringhe in numeri o numeri in stringhe. La funzione Format Into String converte un numero in una stringa e la funzione Scan From String converte una stringa in un numero.

Ÿ

Cliccate con il tasto destro del mouse su Format Into String o su Scan From String e selezionate Edit Format String o Edit Scan String dal menu rapido per creare o modificare una format string.

Ÿ

Utilizzate i VI File I/O e le funzioni che si trovano nella palette Functions»File I/O per considerare tutti gli aspetti di I/O su file.

Ÿ

Utilizzate i VI File I/O ad alto livello sulla riga superiore della palette Functions»File I/O per svolgere le comuni operazioni di I/O.

Ÿ

Utilizzate i VI File I/O a basso livello e le funzioni che si trovano sulla riga superiore della palette Functions»File I/O e le funzioni Advanced File I/O che si trovano nella palette Functions»File I/O»Advanced File Functions per controllare ogni operazione di I/O su file individualmente.

Ÿ

Quando scrivete su un file, aprite, create o sostituite un file, scrivete i dati e chiudete il file. Analogamente, quando leggete da un file, aprite un file esistente, leggete i dati e chiudete il file.

Ÿ

Per accedere ad un file attraverso una finestra di dialogo, non collegate file path nel VI Open/Create/Replace File VI.

Ÿ

Per scrivere dati su un foglio elettronico, dovete formattare la stringa come stringa per foglio elettronico, cioè una stringa che comprende delimitatori, come i tab. Utilizzate la funzione Format Into File per formattare stringhe, numeri, percorsi e dati booleani come testo e scrivete il testo in un file.

 National Instruments Corporation

7-27

LabVIEW Corso Base I


Lezione 7

Stringhe e I/O di file

Esercizi aggiuntivi 4-19 Costruite un VI che generi una matrice 2D di 3 righe x 100 colonne di numeri casuali e scriva i dati trasposti su un file a foglio elettronico. Aggiungete una intestazione ad ogni colonna. Utilizzate i VI File I/O ad alto livello che si trovano nella palette Functions»File I/O.

Sfida

Consiglio

Utilizzate il VI Write Characters To File per scrivere l’intestazione e il VI Write To Spreadsheet File per scrivere dati numerici sullo stesso file. Salvate il VI come More Spreadsheets.vi. 4-20 Costruite un VI che converta le stringhe di fogli elettronici con delimitatori tab in stringhe di fogli elettronici con le virgole come delimitatori, cioè stringhe di fogli elettronici con colonne separate da virgole e righe separate da caratteri di fine linea. Visualizzate sul pannello frontale entrambe le stringhe di fogli elettronici delimitate con tab e con virgole. Consiglio

Utilizzate la funzione Search and Replace String. Salvate il VI come Spreadsheet Converter.vi.

4-21 Modificate il VI Temperature Logger che avete realizzato nell’esercitazione 7-4, affinché il VI non crei un nuovo file ogni volta che avviate il VI. Accodate i dati alla fine del file esistente temp.dat che il VI Temperature Logger ha creato. Avviate il VI diverse volte ed utilizzate un’applicazione di word processor per confermare che il VI ha accodato nuove letture di temperatura. Consiglio

Cancellate la funzione Format Into File e sostituitela con le funzioni Format Into String e Write File. Utilizzate i parametri pos mode e pos offset della funzione Write File per spostare il contrassegno del file corrente. Salvate il VI come Temperature Logger 2.vi.

LabVIEW Corso Base I

7-28

 National Instruments Corporation


Lezione 7 Stringhe e I/O di file

Note

ď›™ National Instruments Corporation

7-29

LabVIEW Corso Base I



Lezione 8 Acquisizione dati e forme d’onda Questa lezione descrive come utilizzare dispositivi plug-in di acquisizione dati (DAQ) in LabVIEW. Fate riferimento a LabVIEW DAQ Basics Course Manual per ulteriori informazioni sull’acquisizione dati in LabVIEW.

Imparerete: FF. A conoscere i dispositivi DAQ plug-in GG. organizzare VI di Acquisition Data

Ad

HH. ottenere un singolo ingresso analogico

Ad

II. A conoscere gli wizard per DAQ JJ. A conoscere un ingresso analogico di forme d’onda KK. scrivere forme d’onda su file

A

LL. A scandire canali analogici multipli MM. ottenere un’uscita analogica

Ad

NN. controllare linee digitali di I/O

A

OO. conoscere i DAQ bufferizzati.

A

 National Instruments Corporation

8-1

LabVIEW Corso Base I


Lezione 8

Acquisizione dati e forme d’onda

A. Panoramica o configurazione LabVIEW comprende un insieme di VI che vi consentono di configurare, acquisire e inviare dati su dispositivi DAQ. Spesso, un dispositivo può svolgere una varietà di funzioni – conversione analogico-digitale (A/D), conversione digitale-analogica (D/A), I/O digitale e operazioni di conteggio e temporizzazione. Ogni dispositivo supporta differenti DAQ e velocità di generazione del segnale. Inoltre, ogni dispositivo DAQ è realizzato per specifiche piattaforme hardware e sistemi operativi. Fate riferimento al National Instruments Product Catalog all’indirizzo ni.com/catalog per ulteriori informazioni sui dispositivi DAQ.

Componenti di un sistema DAQ L’illustrazione seguente mostra due opzioni per un sistema DAQ. Nell’opzione A, il dispositivo DAQ plug-in risiede nel computer. Nell’opzione B, il dispositivo DAQ è esterno. Con un dispositivo esterno, potete realizzare sistemi DAQ utilizzando computer senza slot disponibili del tipo plug-in, come nei laptop. Il computer e il modulo DAQ comunicano attraverso vari bus come la porta parallela, quella seriale e la Ethernet. Questi sistemi sono pratici per applicazioni DAQ e di controllo remote.

1 2

Trasduttori Condizionamento del segnale

3 4

Segnali condizionati Dispositivo DAQ

5 6

7 Software Collegamento per porta parallela

Modulo DAQ

Il compito fondamentale di un sistema DAQ è di misurare o generare segnali fisici reali. Prima che un sistema basato su computer possa misurare un segnale fisico, un sensore o trasduttore deve convertire il segnale fisico in uno elettrico, come tensione o corrente. Il dispositivo DAQ plug-in viene spesso considerato come l’intero sistema DAQ, sebbene attualmente sia solo un componente del sistema. A differenza della maggior parte degli strumenti stand-alone, non potete sempre collegare direttamente i segnali in un dispositivo DAQ.

LabVIEW Corso Base I

8-2

 National Instruments Corporation


Lezione 8 Acquisizione dati e forme d’onda

In questi casi, dovete utilizzare degli accessori per condizionare i segnali prima che il dispositivo DAQ plug-in li converta in informazione digitale. Il software controlla il sistema DAQ acquisendo i dati di riga, analizzando i dati e presentando i risultati.

Ingresso analogico Quando si misurano segnali analogici con un dispositivo DAQ, dovete considerare i seguenti fattori che influenzano la qualità del segnale digitalizzato: il modo, la risoluzione, l’intervallo, il guadagno, la velocità di campionamento e il rumore.

Modo In un sistema di misura sbilanciato, tutti gli ingressi sono riferiti ad un punto di terra comune. Utilizzate questo sistema quando i segnali hanno un livello alto (superiore ad 1 V), i conduttori dalla sorgente del segnale all’hardware dell’ingresso analogico sono corti (meno di 15 ft) e tutti i segnali d’ingresso condividono un riferimento di terra comune. Altrimenti, utilizzate un sistema di misura differenziale tale che ogni ingresso abbia il suo riferimento e voi non dobbiate collegare un ingresso ad un riferimento fisso, come a terra o all’impianto di terra dell’edificio. In generale, un sistema di misura differenziale è preferibile perché evita non solo gli errori indotti dal loop di terra, ma anche il rumore presente nell’ambiente ad una certa temperatura. D’altro canto, un sistema di misura sbilanciato consente il doppio di canali di misura ed è accettabile quando l’ampiezza degli errori indotti è più piccola dell’accuratezza richiesta dei dati.

Risoluzione Il numero di bit utilizzato per rappresentare un segnale analogico determina la risoluzione dell’ADC. La risoluzione su un dispositivo DAQ è simile ai segni su un righello. Più segni ha il righello, più sono precise le misure. Maggiore è la risoluzione di un dispositivo DAQ, maggiore è il numero di divisioni in cui il vostro sistema può suddividere l’intervallo dell’ADC e quindi minore è la variazione rilevabile. Un ADC da 3 bit divide l’intervallo in 23 o 8 divisioni. Un codice binario o digitale tra 000 e 111 rappresenta ogni divisione. L’ADC traduce ogni misura del segnale analogico in una di divisioni digitali. L’illustrazione seguente mostra un’immagine digitale sinusoidale a 5 kHz ottenuta con un ADC da 3 bit. Il segnale digitale non rappresenta il segnale originale adeguatamente perché il convertitore ha poche divisioni digitali per rappresentare le tensioni che variano del segnale analogico. Comunque, incrementare la risoluzione a 16 bit porta il numero di divisioni dell’ADC da 8 (23) a 65,536 (216). L’ADC a 16 bit può ottenere una rappresentazione estremamente accurata del segnale analogico.

 National Instruments Corporation

8-3

LabVIEW Corso Base I


Lezione 8

Acquisizione dati e forme d’onda

Intervallo (portata) del dispositivo L’intervallo si riferisce ai livelli di segnale analogico minimo e massimo che l’ADC può digitalizzare. Molti dispositivi DAQ hanno intervalli selezionabili (tipicamente da 0 a 10 V o da –10 a 10 V), e quindi potete adattare l’intervallo dell’ADC a quello del segnale per trarre il più possibile vantaggio dalla risoluzione disponibile per misurare accuratamente il segnale. Per esempio, nell’illustrazione seguente, l’ADC a 3 bit nel grafico di sinistra ha otto divisioni digitali nell’intervallo da 0 a 10 V. Se volete selezionare un intervallo da –10 a 10 V, come mostrato nel grafico di destra, lo stesso ADC divide un intervallo di 20 V in otto divisioni. La più piccola tensione rilevabile aumenta da 1.25 a 2.50 V e il grafico di destra costituisce una rappresentazione del segnale molto meno accurata.

Guadagno Il guadagno comprende sia l’amplificazione che l’attenuazione di un segnale che può avvenire prima della digitalizzazione del segnale. Applicando un guadagno ad un segnale, potete effettivamente diminuire l’intervallo d’ingresso di un ADC e quindi consentire all’ADC di utilizzare più divisioni digitali possibile per rappresentare il segnale. Per esempio, utilizzando un ADC a 3 bit e un intervallo da 0 a 10 V, l’illustrazione seguente mostra gli effetti di applicazione del guadagno ad un segnale che fluttua tra 0 e 5 V. Con nessun guadagno applicato o gain = 1, l’ADC utilizza solo quattro delle otto divisioni nella conversione.

LabVIEW Corso Base I

8-4

 National Instruments Corporation


Lezione 8 Acquisizione dati e forme d’onda

Amplificando il segnale con un guadagno di due prima della digitalizzazione, l’ADC utilizza tutte le otto divisioni digitali e la rappresentazione digitale è più accurata. In effetti, il dispositivo ha un intervallo d’ingresso disponibile da 0 a 5 V, perché ogni segnale al di sopra di 5 V quando è amplificato di un fattore due, rende l’ingresso all’ADC più grande di 10 V.

L’intervallo, la risoluzione e il guadagno disponibili su un dispositivo DAQ definiscono la più piccola variazione rilevabile nella tensione d’ingresso. Questa variazione di tensione rappresenta un bit meno significativo (LSB) del valore digitale e viene anche chiamato code width. Il più piccolo intervallo rilevabile viene calcolato come segue: intervallo di tensione/(guadagno x 2risoluzione in bit)

Per esempio, un dispositivo DAQ a 12 bit con un intervallo d’ingresso da 0 a 10 V e un guadagno di uno rileva una variazione di 2.4 mV, mentre lo stesso dispositivo con un intervallo d’ingresso da –10 a 10 V potrebbe rilevare solo una variazione di 4.8 mV. intervallo guadagno × 2

risoluzione

=

10 1× 2

12

= 2.4 mV

20 1 × 212

= 4.8 mV

Frequenza di campionamento La frequenza di campionamento determina quanto spesso una conversione A/D ha luogo. Una frequenza di campionamento elevata acquisisce più punti nell’unità di tempo e quindi può spesso fornire una rappresentazione migliore del segnale originale rispetto ad una bassa frequenza di campionamento. Tutti i segnali d’ingresso devono essere campionati ad una velocità sufficientemente alta per riprodurre il segnale analogico in maniera accurata. Un campionamento troppo lento potrebbe causare una rappresentazione del segnale analogico troppo povera. L’illustrazione seguente mostra un segnale adeguatamente campionato, e gli effetti del sottocampionamento. Una cattiva rappresentazione del segnale, o aliasing, fa apparire il segnale come se avesse frequenze che in realtà non ha.

 National Instruments Corporation

8-5

LabVIEW Corso Base I


Lezione 8

Acquisizione dati e forme d’onda

1 Campionato adeguatamente

2 Aliasing dovuto al campionamento

Secondo il teorema di Nyquist, dovete acquisire ad una frequenza almeno due volte più alta della massima frequenza presente nel segnale per fornire dati affidabili. Per esempio, segnali audio convertiti in segnali elettrici spesso hanno frequenze fino a 20 kHz; quindi avete bisogno di un dispositivo con una frequenza di campionamento superiore a 40 kHz per acquisire correttamente il segnale. D’altro canto, i trasduttori di temperatura di solito non richiedono un’elevata frequenza di campionamento perché la temperatura non varia rapidamente nella maggior parte delle applicazioni. Quindi un dispositivo con una bassa frequenza di campionamento può acquisire correttamente segnali di temperatura.

Filtraggio e media Il rumore indesiderato distorce il segnale analogico prima che esso venga convertito in un segnale digitale. La sorgente di questo segnale potrebbe essere esterna o interna al computer. Potete limitare il rumore esterno utilizzando un condizionamento del segnale corretto. Potete anche minimizzare gli effetti di questo rumore sovracampionando il segnale e quindi effettuando la media dei punti sovracampionati. Il livello di rumore viene ridotto di un fattore: numero di punti mediati

Per esempio, se effettuate la medi su 100 punti, l’effetto del rumore sul segnale viene ridotto di un fattore 10.

Configurazione hardware DAQ Dovete completare diversi passi prima che possiate utilizzare i VI Data Acquisition. I dispositivi sono configurati per i computer in questa classe.

Windows Questa sezione descrive le impostazioni per i computer con bus PCI, PCMCIA o ISA. Il programma di installazione di LabVIEW copia i file necessari per DAQ sul vostro computer. I VI Data Acquisition accedono all’NI-DAQ standard National Instruments per DLL Windows a 32 bit.

LabVIEW Corso Base I

8-6

 National Instruments Corporation


Lezione 8 Acquisizione dati e forme d’onda

NI-DAQ per Windows supporta tutti i dispositivi DAQ della National Instruments e SCXI. Le DLL NI-DAQ, l’interfaccia ad alto livello del dispositivo, vengono caricate nella directory windows\system directory. Le DLL NI-DAQ quindi si interfacciano con Windows Registry per ottenere i parametri di configurazione definiti da Measurement & Automation Explorer. Siccome Measurement & Automation Explorer è una parte integrale delle DAQ, esso viene descritto con maggior dettaglio più avanti in questa sezione. Configurazione di Windows

LabVIEW per Windows

Measurement & Automation Explorer

VI Data Acquisition

NI-DAQ per Windows Registro di Windows

Dispositivo DAQ

Il Windows Configuration Manager tiene traccia di tutto l’hardware installato nel vostro sistema, compresi i dispositivi DAQ della National Instruments. Se avete un dispositivo Plug & Play (PnP), come ad esempio un dispositivo E-Series MIO, il Windows Configuration Manager rileva e configura automaticamente il dispositivo. Se avete un dispositivo non PnP, o un dispositivo rimasto, dovete configurarlo manualmente utilizzando l’opzione Add New Hardware nel Pannello di Controllo. Potete verificare il Windows Configuration entrando in Device Manager, al quale si arriva selezionando Start»Settings»Control Panel»System»Device Manager. Potete vedere Data Acquisition Devices, che elenca tutti i dispositivi DAQ installati sul vostro computer. Cliccate due volte su un dispositivo DAQ per visualizzare una finestra di dialogo con pagine incolonnate. General visualizza tutte le informazioni generali riguardanti il dispositivo. Resources specifica le risorse del sistema per il dispositivo come i livelli di interrupt, DMA e il base address per i dispositivi configurabili via software. NI-DAQ Information specifica il tipo di bus del dispositivo DAQ. Driver specifica la versione del driver e la posizione del dispositivo DAQ. LabVIEW installa una utility di configurazione, Measurement & Automation Explorer, per definire tutti i parametri di configurazione del

 National Instruments Corporation

8-7

LabVIEW Corso Base I


Lezione 8

Acquisizione dati e forme d’onda

dispositivo e dei canali. Dopo aver installato un dispositivo DAQ nel vostro computer, dovete avviare l’utility di configurazione. Measurement & Automation Explorer legge le informazioni registrate da Device Manager nel registro di Windows e assegna un numero logico di dispositivo a ciascun dispositivo DAQ. Utilizzate il numero del dispositivo per fare riferimento ad esso in LabVIEW. Entrate in Measurement & Automation Explorer cliccando due volte sulla sua icona dal desktop o selezionando Tools»Measurement & Automation Explorer in LabVIEW. La finestra seguente è quella principale di Measurement & Automation Explorer. Measurement & Automation Explorer serve anche per la configurazione dell’SCXI.

Measurement & Automation Explorer rileva tutto l’hardware National Instruments compresa l’interfaccia GPIB. Fate riferimento alla Lezione 9, Controllo della strumentazione, per ulteriori informazioni sulla GPIB. I parametri del dispositivo che potete impostare utilizzando l’utility di configurazione dipende dal dispositivo. Measurement & Automation Explorer salva il numero logico del dispositivo e i parametri di configurazione nel registro di Windows. La capacità di accettare dispositivi plug and play di Windows rileva automaticamente e configura dispositivi DAQ switchless, come il PCIMIO-16XE-50 o una DAQCard. Quando installate un dispositivo nel vostro computer, il dispositivo viene rilevato automaticamente.

LabVIEW Corso Base I

8-8

 National Instruments Corporation


Lezione 8 Acquisizione dati e forme d’onda

Macintosh LabVIEW installa le NI-DAQ per i driver software Macintosh necessarie alla comunicazione con i dispositivi DAQ della National Instruments. Utilizzate l’utility NI_DAQ Configuration per configurare i vostri dispositivi ed accessori DAQ. LabVIEW per Macintosh VI Data Acquisition

Utility NI-DAQ Configuration

Dispositivo DAQ

Quando installate NI-DAQ per Macintosh, installate la versione 4.9 se avete un dispositivo NB o Lab Series. Altrimenti, installate la versione 6.0 o successiva per dispositivi PCI e DAQCard.

 National Instruments Corporation

8-9

LabVIEW Corso Base I


Lezione 8

Acquisizione dati e forme d’onda

Esercitazione 8-1 Obiettivo:

VI Build String

Utilizzare Measurement & Automation Explorer per esaminare la configurazione DAQ corrente, provare il dispositivo in maniera interattiva e aggiungere tre canali virtuali. Eseguite i passi seguenti per utilizzare Measurement & Automation Explorer per esaminare la configurazione di un dispositivo DAQ sul vostro computer, per utilizzare le routine di test di Measurement & Automation Explorer per confermare il funzionamento del dispositivo e per configurare tre canali virtuali da utilizzare con DAQ Signal Accessory.

Parte A. Esame delle impostazioni del dispositivo DAQ 76. Avviate Measurement & Automation Explorer cliccando due volte sull’icona del desktop o selezionando Tools»Measurement & Automation Explorer in LabVIEW. Questa utility cerca nel vostro sistema l’hardware installato della National Instruments e visualizza le informazioni. 77. Espandete la sezione Devices and Interfaces per visualizzare i dispositivi della National Instruments installati. L’esempio seguente mostra i dispositivi PCI-MIO-16XE-50 e PCI-GPIB.

Measurement & Automation Explorer visualizza l’hardware e il software della National Instruments presente nel vostro sistema. Il numero del dispositivo si trova tra parentesi dopo il nome del dispositivo. I VI Data Acquisition utilizzano questo numero del dispositivo per determinare quale dispositivo esegue operazioni DAQ. Nota

Voi potreste avere un dispositivo differente installato e alcune delle opzioni mostrate potrebbero essere diverse. Cliccate sul pulsante Show/Hide nell’angolo superiore destro di Measurement & Automation Explorer per nascondere l’help online e mostrare le informazioni sui dispositivi DAQ.

LabVIEW Corso Base I

8-10

 National Instruments Corporation


Lezione 8 Acquisizione dati e forme d’onda

78. Potete avere maggiori informazioni sulla configurazione del dispositivo esaminando le sue proprietà. Con il dispositivo DAQ evidenziato, cliccate sul pulsante Properties della barra degli strumenti. Appare una finestra di dialogo che potete utilizzare per configurare il dispositivo di I/O multiplo (MIO).

Questa finestra di dialogo contiene diverse schermate. System visualizza le risorse del sistema assegnate al dispositivo attraverso il registro di Windows. Utilizzate gli altri pulsanti per configurare diversi ingressi analogici, uscite, parametri accessori e parametri DAQ del dispositivo. 79. Cliccate su System e quindi sul pulsante Test Resources per verificare le risorse del sistema assegnate al dispositivo secondo il Windows Device Manager. Il dispositivo dovrebbe passare questo test, perché è già configurato.

Parte B. Test dei componenti dei dispositivi DAQ 80. Cliccate sul pulsante OK due volte per tornare a Measurement & Automation Explorer. 81. Cliccate sul pulsante Test Panel per verificare le singole funzioni del dispositivo DAQ, come l’ingresso e l’uscita analogica. Compare la finestra di dialogo Test Panel. Utilizzate Analog Input per verificare i diversi canali d’ingresso analogici del dispositivo DAQ. Ricordate che il canale 0 è collegato al sensore di temperatura su DAQ Signal Accessory. Mettete il vostro dito sul sensore per vedere l’aumento di tensione. Potete anche muovere l’interruttore Noise su On per vedere il cambiamento del segnale. 82. Cliccate su Analog Output per impostare una singola tensione o una sinusoide su uno dei canali di uscita analogici del dispositivo DAQ. 83. Portate Output Mode su Sine Generator e cliccate sul pulsante Start Sine Generator. LabVIEW genera una sinusoide continua sul canale analogico 0 di uscita.

 National Instruments Corporation

8-11

LabVIEW Corso Base I


Lezione 8

Acquisizione dati e forme d’onda

84. Sulla cassetta esterna DAQ Signal Accessory, collegate Analog Out Ch0 a Analog In Ch1. 85. Cliccate su Analog Input e portate il canale ad 1. LabVIEW visualizza la sinusoide dal canale analogico di uscita 0. 86. Cliccate su Counter I/O per determinare se i temporizzatori e contatori del dispositivo DAQ stanno funzionando correttamente. 87. Per verificare il funzionamento dei temporizzatori e dei contatori, portate il Counter Mode su Simple Event Counting e cliccate sul pulsante Start. Il Counter Value aumenta rapidamente. Cliccate su Reset per arrestare il test del contatore. 88. Cliccate su Digital I/O per provare le linee digitali sul dispositivo DAQ. 89. Impostate le linee da 0 a 3 come uscite e cambiate lo stato di scelta dei riquadri Logic Level. Quando fate questo, i LED sul DAQ Signal Accessory si accendono o si spengono. I LED usano la logica negativa. Cliccate sul pulsante Close per chiudere il Test Panel e tornare al Measurement & Automation Explorer.

Parte C. Configurazione dei canali sul dispositivo DAQ 90. Cliccate con il tasto destro del mouse sull’icona Data Neighborhood e selezionate Create New dal menu rapido. Selezionate Virtual Channel e cliccate sul pulsante Finish. 91. Inserite le informazioni seguenti nei pannelli che appaiono per configurare un canale perché prenda una lettura dal sensore di temperatura (canale d’ingresso analogico 0) sul DAQ Signal Accessory. Cliccate sul pulsante Next per visualizzare ciascuna delle impostazioni seguenti. Measurement Type

Analog Input

Channel Name

temp

Channel Description

This is the temperature sensor on the DAQ Signal Accessory.

Type of Sensor

Voltage e contrassegnate il riquadro di

This will be a temperature measurement. Units

Deg C

Range

Lasciate i valori di default

Scale

New Custom Scale

Scale Name

tempscale

Scale Description

V * 100 = deg C

Scale Type

Linear M = 100.0, b = 0.0

LabVIEW Corso Base I

8-12

 National Instruments Corporation


Lezione 8 Acquisizione dati e forme d’onda

92. Nella finestra Verify Scale verificate la scala della rappresentazione e modificatela se necessario. DAQ Hardware used

Dev1 (il vostro dispositivo DAQ)

Channel

0

Analog Input Mode

Differential

93. Create un secondo canale cliccando sul tasto destro del mouse sull’icona Data Neighborhood e selezionate Create New dal menu rapido. Selezionate Virtual Channel e cliccate sul pulsante Finish. Inserite le impostazioni seguenti. Measurement Type

Analog Input

Channel Name

chan1

Channel Description

This is Analog Input on the DAQ Signal Accessory.

Type of Sensor

Voltage

Units

V

Range

-10.0 V to 10.0 V

Scale

No Scaling

DAQ Hardware used

Dev1 (il vostro dispositivo DAQ)

Channel

1

Analog Input Mode

Differential

94. Create il terzo e ultimo canale cliccando con il tasto destro del mouse su chan1 e selezionando Duplicate dal menu rapido. Compare la finestra di dialogo Copy Virtual Channel. 95. Lasciate i valori di default e cliccate sul pulsante OK. Measurement & Automation Explorer visualizza un canale virtuale chiamato chan2 che ha gli stessi parametri di chan1. 96. Verificate le impostazioni e aggiornate la descrizione cliccando con il tasto destro del mouse su chan2 e selezionando Properties dal menu rapido.

 National Instruments Corporation

8-13

LabVIEW Corso Base I


Lezione 8

Acquisizione dati e forme d’onda

97. Espandete tutte le sezioni. Measurement & Automation Explorer dovrebbe apparire come l’esempio seguente.

98. Chiudete Measurement & Automation Explorer selezionando File»Exit.

Fine dell’esercitazione 8-1

LabVIEW Corso Base I

8-14

 National Instruments Corporation


Lezione 8 Acquisizione dati e forme d’onda

B. Organizzazione dei VI Data Acquisition La maggior parte dei VI Data Acquisition che si trovano nella palette Functions»Data Acquisition ha le seguenti subpalette suddivise secondo la loro funzionalità: Ÿ

VI Easy

Ÿ

VI Intermediate

Ÿ

VI Utility

Ÿ

VI Advanced

Per esempio, la seguente subpalette contiene tutti i livelli precedenti.

1 2 3 4

1 2

VI Easy Analog Input VI Intermediate Analog Input

3 4

VI Advanced Analog Input VI Analog Input Utility

Sebbene questo manuale descriva i VI Intermediate, la maggior parte degli esercizi utilizza i VI Easy.

VI Easy I VI Easy eseguono semplici operazioni DAQ e risiedono tipicamente nella prima riga dei VI in una subpalette. Potete avviare questi VI dal pannello frontale o utilizzarli come subVI nelle applicazioni fondamentali. Avete bisogno di un solo VI Easy per svolgere ogni operazione DAQ di base. A differenza dei VI Intermediate e Advanced, quelli Easy avvertono automaticamente della presenza di errori con una finestra di dialogo che vi consente di arrestare l’esecuzione del VI o di ignorare l’errore.

 National Instruments Corporation

8-15

LabVIEW Corso Base I


Lezione 8

Acquisizione dati e forme d’onda

VI Intermediate I VI Intermediate hanno maggiori funzionalità hardware ed efficienza nello sviluppo di applicazioni rispetto a quelli Easy. Utilizzate i VI Intermediate nella maggior parte delle applicazioni. I VI Intermediate vi offrono maggior controllo nella gestione degli errori rispetto a quelli Easy. Con ogni VI potete verificare gli errori o passare il cluster degli errori ad altri VI.

VI Utility I VI Utility sono anch’essi dei VI di livello intermedio e per questo hanno maggiori funzionalità hardware ed efficienza nello sviluppo di applicazioni rispetto a quelli Easy. I VI Utility sono costituiti da raggruppamenti utili di VI Intermediate. Sono adatti alle situazioni in cui avete bisogno di maggior controllo della funzionalità rispetto a quella fornita dai VI Easy, ma limitano il numero di VI che richiamate.

VI Advanced I VI Advanced sono l’interfaccia a livello inferiore verso il driver DAQ. Poche applicazioni hanno bisogno di utilizzare i VI Advanced. I VI Advanced forniscono la maggiore quantità di informazioni di stato dal driver DAQ. Utilizzate i VI Advanced quando quelli Easy o Intermediate non hanno gli ingressi necessari per controllare una funzione DAQ non comune.

LabVIEW Corso Base I

8-16

 National Instruments Corporation


Lezione 8 Acquisizione dati e forme d’onda

C. Acquisizione di un singolo ingresso analogico Utilizzate i VI Analog Input che si trovano nella palette Functions»Data Acquisition»Analog Input per eseguire conversioni analogico-digitali (A/D). Per acquisire un singolo punto dal segnale collegato al dispositivo DAQ, utilizzate AI Sample Channel. AI Sample Channel misura il segnale collegato al canale specificato e fornisce la tensione misurata. Device è il numero del dispositivo DAQ. Channel specifica il nome del canale d’ingresso analogico. High limit e low limit definiscono l’intervallo del segnale d’ingresso. Gli ingressi di default sono + 10 V e – 10 V, rispettivamente. In caso di errore durante il funzionamento di AI Sample Channel, una finestra di dialogo visualizza il codice di errore e avete la possibilità di terminare o di continuare l’esecuzione. Per acquisire un singolo punto da diversi canali d’ingresso analogici sul dispositivo DAQ, utilizzate AI Sample Channels. AI Sample Channels misura i segnali riportati a canali multipli e fornisce quei valori misurati in una matrice. Device è il numero del dispositivo DAQ. Channel specifica da quale canale d’ingresso analogico leggere. High limit e low limit definiscono l’intervallo del segnale d’ingresso. Gli ingressi di default sono + 10 V e – 10 V, rispettivamente. Samples è la matrice di uscita delle tensioni lette. L’ordine dei valori nella matrice dei campioni coincide con l’ordine richiesto nel controllo del nome di canale della DAQ. Per esempio, se channels è 1, 2, 4, samples[0] dovrebbe provenire dal CH 1, samples[1] dovrebbe provenire dal CH 2 e samples[2] dal CH 4. In caso di errore durante il funzionamento di AI Sample Channel, una finestra di dialogo visualizza il codice di errore e avete la possibilità di terminare o di continuare l’esecuzione.

DAQ Channel Name Control Il controllo del nome di canale della DAQ che si trova nella palette Controls»I/O è un tipo di dato di LabVIEW utilizzato dai VI Data Acquisition per comunicare con i dispositivi DAQ della National Instruments. Inserite i nomi di canale nel controllo utilizzando lo strumento Modifica per cliccare sul controllo del nome di canale della DAQ e selezionate il nome di canale definito in Measurement & Automation Explorer. Potete anche cliccare con il tasto destro del mouse sul controllo del nome di canale della DAQ e selezionare Allow Undefined Names dal menu rapido.

 National Instruments Corporation

8-17

LabVIEW Corso Base I


Lezione 8

Acquisizione dati e forme d’onda

Esercitazione 8-2

VI Voltmeter

Obiettivo: Acquisire un segnale analogico utilizzando un dispositivo DAQ. Completate i passi seguenti per costruire un VI che misuri la tensione che il sensore di temperatura su DAQ Signal Accessory emette. Il sensore di temperatura produce una tensione proporzionale alla temperatura. Il sensore è collegato al canale 0 del dispositivo DAQ.

Pannello frontale 38. Aprite un nuovo VI e costruite il pannello frontale seguente.

c. Inserite il misuratore della palette Controls»Numeric. d. Configurate la scala del misuratore da 0.0 a 0.4. Per fare questo, utilizzate lo strumento Testo per cliccare due volte su 10.0 e digitate 0.4. Potreste aver bisogno di allargare il misuratore per visualizzare la scala nel pannello frontale precedente. e. Configurate l’interruttore verticale ad un valore di default di TRUE e un’azione meccanica di Latch When Pressed. f. Cliccate con il tasto destro del mouse su Channel e selezionate Allow Undefined Names dal menu rapido e immettete 0.

LabVIEW Corso Base I

8-18

 National Instruments Corporation


Lezione 8 Acquisizione dati e forme d’onda

Schema a blocchi 39. Costruite lo schema a blocchi seguente.

h. Inserite il VI AI Sample Channel che si trova nella palette Functions»Data Acquisition»Analog Input. Questo VI legge un canale d’ingresso analogico e fornisce la tensione. Nota Se non avete un dispositivo DAQ o un DAQ Signal Accessory, inserite il

VI AI Sample Channel (Demo) che si trova nella palette Functions»User Libraries»Basics I Course invece del VI AI Sample Channel. Questo VI simula una lettura da un canale d’ingresso analogico. i. Inserite la funzione Wait Until Next ms Multiple che si trova nella palette Functions»Time & Dialog. Questa funzione determina l’esecuzione del ciclo ogni 100 ms. 40. Salvate il VI come Voltmeter.vi, perché lo utilizzerete più avanti nel corso. 41. Visualizzate il pannello frontale ed eseguite il VI. Il misuratore visualizza la tensione emessa dal sensore di temperatura. Appoggiate il vostro dito sul sensore di temperatura e notate come la tensione aumenta. In caso di errore, i VI Easy I/O visualizzano una finestra di dialogo che mostra il codice di errore e una sua descrizione. 42. Impostate Channel su temp. Avviate il VI e la temperatura viene visualizzata nel misuratore. I valori di temperatura sono 100 volte più grandi dei valori di tensione. Cambiate la scala del misuratore per vedere i valori corretti. 43. Chiudete il VI.

Fine dell’esercitazione 8-2

 National Instruments Corporation

8-19

LabVIEW Corso Base I


Lezione 8

Acquisizione dati e forme d’onda

Esercitazione 8-3 VI Measurement Averaging (Opzionale)

Obiettivo: Ridurre il rumore nelle misure analogiche tramite sovracampionamento e media. 22. Aprite ed avviate il VI Measurement Averaging. Questo VI misura l’uscita di tensione dal sensore di temperatura una volta al secondo e rappresenta la tensione sul grafico. Nota Se non avete un dispositivo DAQ o un DAQ Signal Accessory, sostituite

il VI AI Sample Channel con il VI AI Sample Channel (Demo) che si trova nella palette Functions»User Libraries»Basics I Course. Questo VI simula una lettura dal canale d’ingresso analogico 0. 23. Introducete rumore nella misura di temperatura muovendo l’interruttore Temp Sensor Noise della DAQ Signal Accessory sulla posizione ON. La misura comincia a fluttuare con spike di rumore. 24. Arrestate il VI e visualizzate lo schema a blocchi. Modificate la condizione TRUE nello schema a blocchi per prendere 30 misure, effettuare la media sui dati e rappresentare la media di 30 misure. 25. Avviate il VI. Gli spike di rumore vengono eliminati quando l’interruttore Averaging viene posto su on. 26. Salvate e chiudete il VI.

Fine dell’esercitazione 8-3

LabVIEW Corso Base I

8-20

 National Instruments Corporation


Lezione 8 Acquisizione dati e forme d’onda

D. Wizard per le DAQ LabVIEW contiene diversi wizard per aiutarvi a sviluppare le applicazioni più rapidamente. Il DAQ Solution Wizard vi consente di scegliere tra gli esempi correnti di DAQ o di progettare un’applicazione DAQ personalizzata. Opera con ingressi e uscite analogici, I/O digitali e contatori/temporizzatori. Il DAQ Solution Wizard è uno strumento interattivo che utilizza una serie di finestre per porvi delle domande sulla vostra applicazione. Viene creato un VI esempio che potete salvare in una nuova area.

Il DAQ Solution Wizard utilizza anche il DAQ Channel Wizard per definire quali segnali sono collegati e su quali canali del dispositivo DAQ. Quando cliccate sul pulsante Go to DAQ Channel Wizard, si apre Measurement & Automation Explorer. Potete quindi modificare o aggiungere nuovi canali virtuali e scale per le applicazioni DAQ. Potete quindi creare i riferimenti per il nome di canale per il segnale d’ingresso nell’applicazione e tutti i processi di conversione sono eseguiti in maniera trasparente.

 National Instruments Corporation

8-21

LabVIEW Corso Base I


Lezione 8

Acquisizione dati e forme d’onda

Esercitazione 8-4

VI Simple Data Logger

Obiettivo: Utilizzare DAQ Wizard per creare un VI per la memorizzazione di dati multicanale. Completate i passi seguenti per creare un VI che acquisisca diversi canali di dati, visualizzi i dati in un grafico continuo e memorizzi i dati su file. Utilizzate i canali virtuali che avete definito in Measurement & Automation Explorer. Collegate l’uscita sinusoidale a Analog In CH1 e l’uscita a forma d’onda quadra a Analog In CH2 della DAQ Signal Accessory. 10. Aprite un nuovo VI. 11. Selezionate Tools»Data Acquisition»DAQ Solution Wizard per visualizzare la finestra DAQ Solution Wizard. 12. Cliccate sul pulsante View Current Wizard Configuration per visualizzare i canali che avete definito. Utilizzate i canali temp, chan1 e chan2 in questa esercitazione. Questi canali corrispondono al sensore di temperatura e ai canali d’ingresso analogici 1 e 2 sulla DAQ Signal Accessory. Per visualizzare più in dettaglio queste definizioni per i canali, aprite il DAQ Channel Wizard cliccando sul pulsante Go to DAQ Channel Wizard. 13. Selezionate Use channel names specified in DAQ Channel Wizard e cliccate sul pulsante Next. 14. Potete realizzare un’applicazione personalizzata o visualizzare i VI in Common Solutions Gallery. Per questa esercitazione, selezionate Solutions Gallery e cliccate sul pulsante Next. 15. Selezionate Data Logging dalla sezione Gallery Categories e Simple Data Logger dalla sezione Common Solutions. 16. Cliccate sul pulsante Next per visualizzare la finestra di dialogo Specify Inputs/Outputs. 17. Selezionate quali canali di dati memorizzare e cliccate sul pulsante Open Solution. Compare il pannello frontale seguente. I canali sono già definiti.

LabVIEW Corso Base I

8-22

 National Instruments Corporation


Lezione 8 Acquisizione dati e forme d’onda

18. Visualizzate ed esaminate lo schema a blocchi. Utilizza il VI AI Sample Channels per acquisire i dati e il VI Write Characters to File per memorizzare i dati su disco. Entrambi questi VI sono VI di I/O ad alto livello. In caso di errore compare una finestra di dialogo. 19. Visualizzate il pannello frontale, impostate Time Between Points su 1 secondo ed avviate il VI. Compare una richiesta di nome file. Create logger.txt nella directory LabVIEW. 20. Arrestate il VI, chiudete il VI Simple Data Logger ed uscite dal Solution Wizard.

Fine dell’esercitazione 8-4

 National Instruments Corporation

8-23

LabVIEW Corso Base I


Lezione 8

Acquisizione dati e forme d’onda

E. Ingresso analogico di una forma d’onda In molte applicazioni, acquisire un punto alla volta potrebbe risultare non troppo rapido. Inoltre, è difficile ottenere un intervallo di campionamento costante tra un punto e il successivo perché l’intervallo dipende da un certo numero di fattori, come la velocità di esecuzione del ciclo, le chiamate superiori del software e così via. Con alcuni VI potete acquisire più punti a velocità più alte rispetto a quelle che potete raggiungere con il VI AI Sample Channel. Inoltre, i VI possono accettare frequenze di campionamento definite dall’utente. Un esempio potrebbe essere AI Acquire Waveform. AI Acquire Waveform acquisisce il numero specificato di campioni alla frequenza di campionamento definita da un singolo canale d’ingresso e fornisce i dati acquisiti. Device è il numero del dispositivo DAQ. Channel specifica il canale d’ingresso analogico. Number of Samples è il numero di campioni da acquisire. Sample rate è il numero di campioni da acquisire al secondo. High limit e low limit definiscono l’intervallo del segnale d’ingresso. Gli ingressi di default sono + 10 V e – 10 V, rispettivamente. Waveform contiene i dati campionati e le informazioni sulla temporizzazione.

Dati sulle forme d’onda I VI Data Acquisition forniscono dati sulle forme d’onda. Il tipo di dato sulle forme d’onda è un tipo di dato di LabVIEW che combina i dati letti dal dispositivo DAQ con l’informazione temporale. La forma d’onda si trova nella palette Controls»I/O. Collegate il terminale di uscita della forma d’onda di un VI Data Acquisition direttamente al tipo di dato della forma d’onda e ottenete l’ora di inizio dell’acquisizione dei dati, l’intervallo temporale tra i punti dei dati e una matrice con i valori dei dati. Potete anche collegare il tipo di dato della forma d’onda ad un grafico ed esso scala correttamente l’asse x con i dati temporali, come mostrato nell’esempio seguente.

LabVIEW Corso Base I

8-24

 National Instruments Corporation


Lezione 8 Acquisizione dati e forme d’onda

 National Instruments Corporation

8-25

LabVIEW Corso Base I


Lezione 8

Acquisizione dati e forme d’onda

Esercitazione 8-5

VI Acquire Waveform

Obiettivo: Acquisire e visualizzare una forma d’onda analogica. Completate i passi seguenti per creare un VI che utilizzi i VI Data Acquisition per acquisire un segnale e rappresentarlo su un grafico. Sul DAQ Signal Accessory, collegate Analog Input CH1 all’uscita sinusoidale del generatore di funzione.

Pannello frontale 7. Aprite un nuovo VI e realizzate il pannello frontale seguente.

# of Samples definisce il numero di punti da campionare. Sample/Sec definisce la frequenza di campionamento. a. Inserite un indicatore di forma d’onda che si trova nella palette Controls»I/O. b. Impostate su 1 le cifre di precisione della scala dell’asse x del grafico. Compare una m dopo i valori dell’asse x ad indicare millisecondi.

Schema a blocchi 8. Realizzate lo schema a blocchi seguente.

LabVIEW Corso Base I

8-26

 National Instruments Corporation


Lezione 8 Acquisizione dati e forme d’onda

9. Inserite il VI AI Acquire Waveform che si trova nella palette Functions»Data Acquisition»Analog Input. Questo VI acquisisce 1000 punti ad una frequenza di campionamento di 10000 campioni/s dal canale 1. Nota Se non avete un dispositivo DAQ o un DAQ Signal Accessory, inserite il

VI Acquire Waveform (Demo) che si trova nella palette Functions»User Libraries»Basics I Course al posto del VI AI Acquire Waveform. Questo VI simula l’acquisizione dati dal canale d’ingresso analogico 1 alla frequenza di campionamento definita e fornisce un certo numero di campioni. 10. Salvate il VI come Acquire Waveform.vi. 11. Visualizzate il pannello frontale, inserite i valori per i controlli ed avviate il VI. Il grafico rappresenta la forma d’onda analogica. Provate valori differenti per la frequenza di campionamento e il numero di campioni. 12. Lasciate questo VI aperto quando avete finito, perché lo utilizzerete nell’esercitazione successiva.

Fine dell’esercitazione 8-5

 National Instruments Corporation

8-27

LabVIEW Corso Base I


Lezione 8

Acquisizione dati e forme d’onda

F. Scrittura su file dei dati relativi a forme d’onda Utilizzate i VI Waveform File I/O che si trovano nella palette Functions»Waveform»Waveform File I/O per scrivere dati della forma d’onda su un file. I VI Write Waveforms to File e Read Waveforms from File scrivono i dati in un file speciale di LabVIEW di dati binari chiamato file datalog. Fate riferimento a LabVIEW Basics II Course manual per ulteriori informazioni sui file datalog. Utilizzate il VI Export Waveforms to Spreadsheet File per scrivere i dati della forma d’onda in un formato per fogli elettronici. Il VI Export Waveforms to Spreadsheet File compie un’operazione simile al VI ad alto livello Write to Spreadsheet File. Esso apre un file dati definito dall’ingresso file path o apre una finestra di dialogo se il percorso è vuoto. Collegate waveform direttamente all’ingresso e questo VI converte i dati in un formato per fogli elettronici utilizzando Tab come delimitatore di default. Potete scegliere di accodare ad un file esistente o di scrivere su un nuovo file. Potete anche aggiungere un’intestazione al file o scrivere più colonne temporali sul file. Il file viene chiuso dopo che i dati sono stati scritti sul file. I cluster di error in e error out memorizzano le condizioni di errore.

LabVIEW Corso Base I

8-28

 National Instruments Corporation


Lezione 8 Acquisizione dati e forme d’onda

Esercitazione 8-6

VI Acquire Waveform to File

Obiettivo: Scrivere i dati acquisiti da un canale d’ingresso analogico su un file. Completate i passi seguenti per scrivere i dati del VI Acquire Waveform su un file di fogli elettronici. 6. Aprite il VI Acquire nell’esercitazione 8-5.

Waveform,

che

avete

realizzato

7. Salvate il VI come Acquire Waveform to File.vi.

Schema a blocchi 8. Modificate lo schema a blocchi come segue.

a. Inserite il VI Export Waveforms to Spreadsheet File che si trova nella palette Functions»Waveform»Waveform File I/O. Questo VI apre un file, formatta e scrive i dati della forma d’onda sul file con un’intestazione e chiude il file. b. Inserite il VI Simple Error Handler che si trova nella palette Functions»Time & Dialog. Questo VI verifica il cluster degli errori e visualizza una finestra di dialogo in caso di errore. 9. Salvate il VI. 10. Visualizzate il pannello frontale ed avviate il VI. Dopo che il VI ha acquisito e visualizzato la forma d’onda, compare una finestra di dialogo che vi chiede di inserire il nome del file. 11. Digitate acquire.txt e cliccate sul pulsante OK. 12. Aprite acquire.txt in un foglio elettronico o in un’applicazione di word processing. L’informazione dell’intestazione è contenuta nella prima riga. Essa descrive l’ora di inizio e i valori di incremento temporali. I dati della forma d’onda sono contenuti nel resto del file, con l’ora e i valori dei dati nella prima colonna e le tensioni nella seconda colonna. 13. Chiudete tutte le finestre aperte.

Fine dell’esercitazione 8-6

 National Instruments Corporation

8-29

LabVIEW Corso Base I


Lezione 8

Acquisizione dati e forme d’onda

G. Scansione di diversi canali d’ingresso analogici Con il VI Analog Input Easy I/O AI Acquire Waveforms, potete acquisire forme d’onda da diversi canali in una volta. AI Acquire Waveforms acquisisce il numero specificato di campioni, alla frequenza di campionamento specificata, da più canali e fornisce i dati acquisiti. Device è il numero del dispositivo DAQ. Channel è il controllo del nome del canale DAQ che definisce i canali d’ingresso analogico da misurare. Una virgola separa i canali nella stringa, per esempio 1, 2, 4. Number of Samples/ch è il numero di campioni da acquisire per canale. Scan rate è il numero di campioni da acquisire al secondo per ogni canale. High limit e low limit definiscono l’intervallo del segnale d’ingresso. Gli ingressi di default sono + 10 V e – 10 V, rispettivamente. Waveforms è una matrice 1D in cui ogni elemento è un tipo di dato di forma d’onda con gli elementi della matrice nello stesso ordine dei nomi di canale. I due esempi successivi mostrano il VI AI Acquire Waveforms per una scansione di quattro canali. La sequenza di scansione è 1, 2, 4 e 6. Per ogni canale vengono acquisiti 100 campioni a 2000 Hz. AI Acquire Waveforms fornisce una matrice 1D di forme d’onda. I dati del primo canale sono memorizzati nell’elemento 0, il secondo canale nell’elemento 1 e così via. La funzione Index Array estrae i dati per ogni canale, una forma d’onda, nel primo esempio.

LabVIEW Corso Base I

8-30

 National Instruments Corporation


Lezione 8 Acquisizione dati e forme d’onda

Forme d’onda acquisite e grafici Potete collegare direttamente l’uscita del VI AI Acquire Waveforms ad un grafico per la rappresentazione. L’esempio seguente mostra una rappresentazione a quattro canali su un unico grafico.

 National Instruments Corporation

8-31

LabVIEW Corso Base I


Lezione 8

Acquisizione dati e forme d’onda

Esercitazione 8-7

VI Scan Example

Obiettivo: Utilizzare i VI Easy I/O per effettuare un’acquisizione di dati con scansione. Completate i passi seguenti per esaminare ed avviare un VI che acquisisca due differenti forme d’onda e rappresenti ciascuna forma d’onda su un grafico. Collegate l’uscita sinusoidale a Analog In CH1 e l’uscita a forma d’onda quadra a Analog In CH2 su DAQ Signal Accessory. 1. Aprite il VI Scan Example, che avete già realizzato. 2. Visualizzate ed esaminate lo schema a blocchi. Nota Se non avete un dispositivo DAQ o un DAQ Signal Accessory, sostituite

il VI AI Acquire Waveforms con il VI Acquire Waveforms (Demo) che si trova nella palette Functions»User Libraries»Basics I Course. Questo VI simula la lettura di una sinusoide sul canale 1 e di una forma d’onda quadra sul canale 2. 3. Avviate il VI. Il grafico visualizza le forme d’onda. 4. Chiudete il VI. Non salvate i cambiamenti.

Fine dell’esercitazione 8-7

LabVIEW Corso Base I

8-32

 National Instruments Corporation


Lezione 8 Acquisizione dati e forme d’onda

Esercitazione 8-8

VI Scan Two Waveforms (Opzionale)

Obiettivo: Acquisire dati da più canali sul dispositivo DAQ e visualizzarli su un grafico. Completate i passi seguenti per acquisire dati da più canali e visualizzare i dati su un grafico. 1. Collegate l’uscita sinusoidale a Analog In CH1 e l’uscita a forma d’onda quadra a Analog In CH2 su DAQ Signal Accessory. 2. Create un VI che effettui una scansione dei dati dal canale 1 e dal canale 2 e li rappresenti entrambi su un singolo grafico. Acquisite 500 punti da ogni canale a 10000 Hz. Scrivete i dati su un file per fogli elettronici affinché il file possa essere aperto da un foglio elettronico, con ogni canale su una colonna. Nota Se non avete un dispositivo DAQ o un DAQ Signal Accessory, sostituite

il VI AI Acquire Waveform con il VI Acquire Waveforms (Demo) che si trova nella palette Functions»User Libraries»Basics I Course. Questo VI simula la lettura di una sinusoide sul canale 1 e di una forma d’onda quadra sul canale 2. 3. Salvate il VI come Scan Two Waveforms.vi. Utilizzate il seguente pannello frontale per cominciare.

Fine dell’esercitazione 8-8

 National Instruments Corporation

8-33

LabVIEW Corso Base I


Lezione 8

Acquisizione dati e forme d’onda

H. Uscita analogica La libreria Analog Output contiene i VI che eseguono conversioni digitale-analogiche (D/A) o conversioni multiple. AO Update Channel scrive un dato valore di tensione su un canale di uscita analogico. Device è il numero del dispositivo DAQ. Channel è una stringa che definisce il nome del canale di uscita analogico. Value è la tensione da produrre. In caso di errore durante il funzionamento di AO Update Channel, una finestra di dialogo visualizza il codice di errore e avete la possibilità di terminare o di proseguire l’esecuzione.

Generazione di forme d’onda In molte applicazioni generare un punto alla volta potrebbe risultare non troppo rapido. Inoltre è difficile ottenere un intervallo di campionamento costante tra un punto e il successivo perché l’intervallo dipende da un certo numero di fattori, come la velocità di esecuzione del ciclo, le chiamate superiori del software e così via. Con il VI AO Generate Waveform, potete generare più punti a velocità superiori a quelle raggiungibili con il VI AO Update Channel. Inoltre, il VI può accettare velocità di aggiornamento definite dall’utente. AO Generate Waveform genera una forma d’onda di tensione su un canale di uscita analogico alla velocità di aggiornamento specificata. Device è il numero del dispositivo DAQ. Channel specifica il nome del canale di uscita analogico. Update rate è il numero di aggiornamenti della tensione al secondo. Waveform contiene i dati da scrivere sul canale di uscita analogico espressi in volt.

LabVIEW Corso Base I

8-34

 National Instruments Corporation


Lezione 8 Acquisizione dati e forme d’onda

Esercitazione 8-9

VI Voltage Output Example

Obiettivo: Produrre una tensione analogica utilizzando un dispositivo DAQ. Completate i passi seguenti per esaminare un VI che produca una tensione da 0 a 9.5 V con passo 0.5 V. Collegate Analog Out CH0 a Analog In CH1 su DAQ Signal Accessory.

Pannello frontale 1. Aprite il VI Voltage Output Example. Il pannello frontale seguente è già realizzato.

Channel specifica il canale di uscita analogico. Voltage out visualizza l’uscita attuale di tensione.

Schema a blocchi 2. Visualizzate ed esaminate lo schema a blocchi seguente.

Ÿ

Il VI AO Update Channel che si trova nella palette Functions»Data Acquisition»Analog Output fornisce la tensione specificata utilizzando il canale 0 di uscita analogica.

Nota Se non avete un dispositivo DAQ o un DAQ Signal Accessory, sostituite

ciascun VI AO Update Channel con il VI Update Channel (Demo) che si trova nella palette Functions»User Libraries»Basics I Course. Questo VI simula la generazione di una tensione su un canale di uscita analogico. Ÿ

 National Instruments Corporation

La funzione Wait Until Next ms Multiple che si trova nella palette Functions»Time & Dialog provoca l’esecuzione del Ciclo For ogni 500 ms.

8-35

LabVIEW Corso Base I


Lezione 8

Acquisizione dati e forme d’onda

Ÿ

La variabile locale che si trova nella palette Functions»Structures scrive uno 0.0 sull’indicatore Voltage Out dopo che il Ciclo For ha terminato. Potete utilizzare le variabili locali per scrivere su un indicatore da posizioni diverse sullo schema a blocchi. Fate riferimento a LabVIEW Basics II Course Manual per ulteriori informazioni sulle variabili locali.

3. Chiudete lo schema a blocchi ed aprite il VI Voltmeter. 4. Configurate il misuratore per la scala da 0.0 a 10.0. 5. Digitate chan1 in Channel sul pannello frontale del VI Voltmeter. Impostate i controlli dei limiti come mostrato nel pannello frontale seguente. 6. Portate su ON l’interruttore Power ed avviate il VI Voltmeter. 7. Per acquisire e visualizzare l’uscita di tensione, avviate il VI Voltage Output Example. Il VI AO Update Channel produce la tensione con passo di 0.5 V da 0 a 9.5 V. Dopo che il Ciclo For ha terminato l’esecuzione, il VI emette 0 V per ripristinare il canale di uscita analogico. Una variabile locale scrive 0.0 sull’indicatore Voltage Out dopo che il Ciclo For ha terminato l’esecuzione. Sul pannello frontale del VI Voltmeter, il misuratore acquisisce e visualizza l’uscita di tensione.

8. Chiudete entrambi i VI.

Fine dell’esercitazione 8-9

LabVIEW Corso Base I

8-36

 National Instruments Corporation


Lezione 8 Acquisizione dati e forme d’onda

I. Ingressi e uscite digitali Utilizzate i VI Digital I/O che si trovano nella palette Functions»Data Acquisition»Digital I/O per leggere da o scrivere su un’intera porta digitale o su una linea definita di quella porta. Write to Digital Line imposta una linea particolare su una porta configurata dall’utente sia con logica alta che bassa. Device è il numero del dispositivo DAQ. Digital Channel specifica la porta in cui si trova la linea. Line specifica la linea digitale su cui volete scrivere. Line State fornisce lo stato logico della linea data. Read from Digital Line Legge lo stato logico di una linea digitale su una porta configurata dall’utente. Device è il numero del dispositivo DAQ. Digital Channel specifica la porta in cui si trova la linea. Line specifica la linea digitale che volete leggere. Line State fornisce lo stato logico della linea data. Write to Digital Port produce un pattern decimale su una porta digitale specificata. Device è il numero del dispositivo DAQ. Digital Channel specifica la porta digitale da usare sul dispositivo DAQ. Pattern specifica il nuovo stato delle linee da scrivere sulla porta. Port Width è la larghezza in bit della porta. Read from Digital Port legge una porta configurata dall’utente. Device è il numero del dispositivo DAQ. Digital Channel specifica la porta digitale da leggere. La lettura viene visualizzata come numero decimale in pattern. Port Width è il numero totale di bit della porta. In caso di errore durante il funzionamento del VI digitale di I/O, una finestra di dialogo visualizza un codice di errore e avete la possibilità di terminare o di continuare l’esecuzione.

 National Instruments Corporation

8-37

LabVIEW Corso Base I


Lezione 8

Acquisizione dati e forme d’onda

Esercitazione 8-10

VI Digital Example

Obiettivo: Controllare linee digitali di I/O sul dispositivo DAQ. Completate i passi seguenti per esaminare un VI che accende i LED della Port 0 su DAQ Signal Accessory basandosi sul valore digitale impostato sul pannello frontale. Ogni LED è collegato ad una linea digitale sul dispositivo DAQ. Le linee sono numerate 0, 1, 2 e 3, a partire dal LED sulla destra. Nota I LED utilizzano la logica negativa. Quindi scrivendo un uno sulla linea digitale del LED si spegne il LED. Scrivendo uno zero sulla linea digitale del LED si accende il LED

1. Aprite il VI Digital Example. 2. Visualizzate ed esaminate lo schema a blocchi. 3. Avviate il VI. Inserite diversi numeri tra 0 e 15 in Pattern Input. I LED visualizzano l’equivalente binario del numero che avete immesso. 4. Chiudete il VI. Non salvate le modifiche.

Fine dell’esercitazione 8-10

LabVIEW Corso Base I

8-38

 National Instruments Corporation


Lezione 8 Acquisizione dati e forme d’onda

J. DAQ con buffer (opzionale) Una comune applicazione DAQ consiste nell’effettuare un’acquisizione con buffer o continua.

VI Intermediate La figura seguente mostra come utilizzare i VI Intermediate Analog Input che si trovano nella seconda riga della palette Functions»Data Acquisition»Analog Input sullo schema a blocchi. Tutti gli ingressi necessari non sono collegati ai VI in queste figure. Le figure sono presentate per mostrare l’ordine di esecuzione dei VI e l’utilizzo di taskID per controllare il flusso di dati. La figura mostra uno schema a blocchi semplificato per applicazioni che acquisiscono forme d’onda di dati utilizzando un buffer nella memoria del computer e una temporizzazione hardware dai contatori sulla scheda. Lo schema a blocchi chiama AI Config, AI Start, AI Read, AI Clear e Simple Error Handler. AI Config configura i canali, alloca un buffer nella memoria del computer e genera un taskID. AI Start programma i contatori sul dispositivo DAQ ed avvia l’acquisizione. AI Read legge dati dal buffer nella memoria del computer. AI Clear libera risorse del computer e del dispositivo DAQ. Il cluster degli errori passa attraverso i VI e Simple Error Handler visualizza una finestra di dialogo in caso di errore.

Nota Nello schema a blocchi precedente, il parametro di dimensioni del buffer

per AI Config è impostato su 2000. Il numero di scansioni per acquisire parametri di AI Start viene lasciato scollegato ed ha un ingresso di default pari a -1. Il valore –1 informa AI Start di acquisire il numero di scansioni per cui la memoria è allocata (dimensioni del buffer) in AI Config. Analogamente, il numero di scansioni per leggere i parametri di AI Read è anch’esso scollegato ed ha un ingresso di default pari a –1. Di nuovo, il valore di –1 dice ad AI Read di leggere il numero di scansioni che AI Start definisce.

DAQ continua DAQ continua o real-time, fornisce i dati da un’acquisizione in corso senza interrompere l’acquisizione. Questo approccio di solito include uno schema del buffer circolare, come mostrato nella figura successiva. Definite le dimensioni di un grande buffer circolare quando configurate l’acquisizione. Dopo aver avviato l’acquisizione, il dispositivo DAQ raccoglie dati e li immagazzina in questo buffer. LabVIEW trasferisce i dati fuori dal buffer un blocco alla volta per la rappresentazione grafica e la memorizzazione su disco.

 National Instruments Corporation

8-39

LabVIEW Corso Base I


Lezione 8

Acquisizione dati e forme d’onda

Quando il buffer è pieno, il dispositivo si avvia scrivendo dati all’inizio del buffer, sovrascrivendo i dati memorizzati precedentemente. Questo processo continua fino a quando il sistema acquisisce il numero specificato di campioni, LabVIEW cancella l’operazione o si presenta un errore. DAQ continua è utile per le applicazioni come il salvataggio di dati su disco e la visualizzazione di dati in tempo reale.

1

Dati in arrivo dal 2 dispositivo al 3 computer (AI Start VI)

4 Fine dei dati Segno della lettura corrente

Dati trasferiti dal buffer del computer al LabVIEW (AI Read VI)

Configurate LabVIEW per una DAQ continua istruendo AI Start ad acquisire dati indefinitamente. Questa acquisizione è asincrona, intendendo che altre operazioni di LabVIEW possono essere eseguite durante l’acquisizione. La figura seguente illustra uno schema a blocchi di una tipica DAQ continua. Per iniziare l’acquisizione, impostate a 0 number of scans to acquire in AI Start. AI Read viene chiamato in una struttura ciclica per recuperare i dati dal buffer. Potete quindi inviare i dati sul disco, su un grafico e così via. AI Clear arresta l’esecuzione, disalloca i buffer e libera ogni risorsa del dispositivo.

LabVIEW Corso Base I

8-40

 National Instruments Corporation


Lezione 8 Acquisizione dati e forme d’onda

Esercitazione 8-11 (Opzionale)

VI Continuous Acquire with MIO

Obiettivo: Effettuare una DAQ continua. Completate i passi seguenti per realizzare un VI che esegua un’operazione di acquisizione continua e rappresenti i dati acquisiti più di recente su un grafico.

Pannello frontale 1. Aprite un nuovo VI e costruite il pannello frontale seguente.

a. Potete creare la maggior parte dei controlli del pannello frontale sullo schema a blocchi cliccando con il tasto destro del mouse sui terminali corretti dei VI Data Acquisition e selezionando Create»Control dal menu rapido. b. Acquisite dati da più canali di DAQ Signal Accessory e visualizzate i dati su un grafico. Impostate Scan Rate su 1000 scan/s e # of Scans in Buffer su 3000. c. Impostate l’ingresso di controllo della stringa del canale su 0,1,2 o 0:2. d. Effettuate i seguenti collegamenti su DAQ Signal Accessory.

 National Instruments Corporation

Ÿ

Collegate l’uscita sinusoidale all’ingresso analogico CH1.

Ÿ

Collegate l’uscita dell’onda quadra all’ingresso analogico CH2.

8-41

LabVIEW Corso Base I


Lezione 8

Acquisizione dati e forme d’onda

Schema a blocchi 2. Realizzate lo schema a blocchi seguente.

a. Inserite il VI AI Config che si trova nella palette Functions»Data Acquisition»Analog Input. Questo VI configura il funzionamento dell’ingresso analogico per un numero specificato di canali, configura l’hardware e alloca un buffer nella memoria del computer. b. Inserite il VI AI Start che si trova nella palette Functions»Data Acquisition»Analog Input. Questo VI avvia l’acquisizione continua con buffer dell’ingresso analogico e imposta la velocità di acquisizione dei dati. c. Inserite il VI AI Read che si trova nella palette Functions»Data Acquisition»Analog Input. Questo VI legge i dati dal buffer allocato dal VI AI Config. Esso controlla il numero di punti da leggere dal buffer, fornisce i dati di tensione in scala e imposta la locazione del buffer da cui leggere i dati. d. Inserite il VI AI Clear che si trova nella palette Functions»Data Acquisition»Analog Input. Questo VI cancella l’acquisizione dell’ingresso analogico e disalloca il buffer dalla memoria del computer. e. Inserite il VI Simple Error Handler che si trova nella palette Functions»Time & Dialog. In caso di errore, questo VI visualizza una finestra di dialogo con le informazioni riguardanti l’errore e la sua posizione. f. Inserite la funzione Unbundle by Name che si trova nella palette Functions»Cluster. Questa funzione separa lo status booleano dal cluster degli errori. 3. Salvate il VI come Continuous Acquire with MIO.vi. 4. Visualizzate il pannello frontale. Avviate il VI e monitorate i dati rappresentati sul grafico quando cambiate la frequenza con il potenziometro su DAQ Signal Accessory. La costante numerica di 0 che avete collegato all’ingresso number of scans to acquire di AI Start abilita una DAQ continua o circolare. I dati riempiono un buffer

LabVIEW Corso Base I

8-42

 National Instruments Corporation


Lezione 8 Acquisizione dati e forme d’onda

di dimensioni fissate nella memoria e quindi, al raggiungimento della fine del buffer, sovrascrive i valori dall’inizio del buffer. 5. Impostate Read/Search Position su Relative to read mark. 6. Avviate il VI e monitorate Scan Backlog quando diminuite la frequenza di campionamento o il numero di scansioni da leggere in una volta. Scan backlog è definito come il numero di scansioni acquisite nel buffer di acquisizione ma non lette. Scan backlog è una misura di quanto bene mantenete l’acquisizione continua. Se scan backlog aumenta in maniera continua, non state leggendo i dati abbastanza rapidamente dal buffer ed eventualmente perdete i dati. Se ciò accade, il VI AI Read fornisce un errore. 7. Chiudete il VI

Fine dell’esercitazione 8-11

 National Instruments Corporation

8-43

LabVIEW Corso Base I


Lezione 8

Acquisizione dati e forme d’onda

Sommario, trucchi e consigli

LabVIEW Corso Base I

Ÿ

La maggior parte dei VI Data Acquisition che si trovano nella palette Functions»Data Acquisition possiede i seguenti livelli nella subpalette secondo la funzionalità VI Easy, Intermediate, Utility e Advanced.

Ÿ

I VI Easy eseguono semplici operazioni DAQ e tipicamente risiedono nella prima riga dei VI in una subpalette. Potete avviare questi VI dal pannello frontale o utilizzarli come subVI nelle applicazioni di base.

Ÿ

Avete bisogno di un solo VI Easy per eseguire le operazioni fondamentali DAQ. I VI Unlike Intermediate e Advanced, Easy vi avvertono automaticamente degli errori con una finestra di dialogo che vi consente di arrestare l’esecuzione del VI o di ignorare l’errore.

Ÿ

I VI Intermediate hanno più funzionalità ed efficienza hardware nello sviluppo di applicazioni rispetto ai VI Easy. Utilizzate i VI Intermediate nella maggior parte delle applicazioni.

Ÿ

Potete usare l’acquisizione o la generazione di forme d’onda per acquisire o generare i dati più rapidamente e ad una frequenza di campionamento più costante rispetto alla conversione di un singolo punto.

Ÿ

Potete acquisire dati continuativamente utilizzando i VI Intermediate Analog Input, compresi AI Config, AI Start, AI Read e AI Clear.

Ÿ

I VI Data Acquisition forniscono i dati come forme d’onda. I dati in forma d’onda combinano i dati misurati con l’informazione temporale. Collegate una forma d’onda direttamente ad un grafico e x e y si adattano automaticamente ai dati.

8-44

 National Instruments Corporation


Lezione 8 Acquisizione dati e forme d’onda

Esercizi aggiuntivi 8-12 Costruite un VI che misuri continuativamente la temperatura due volte al secondo e visualizzi la temperatura su un grafico. Se la temperatura supera un limite prefissato, il VI dovrebbe accendere un LED sul pannello frontale e il LED 0 su DAQ Signal Accessory. I LED sulla cassetta sono etichettati. Il grafico dovrebbe rappresentare sia la temperatura che il limite. Salvate il VI come Temp Monitor with LED.vi. 8-13 Utilizzate DAQ Solution Wizard per aprire un VI che legga e visualizzi i dati memorizzati nell’esercitazione 8-4 e chiamatelo Simple Data Reader.vi.

ď›™ National Instruments Corporation

8-45

LabVIEW Corso Base I


Lezione 8

Acquisizione dati e forme d’onda

Note

LabVIEW Corso Base I

8-46

 National Instruments Corporation


Lezione 9 Controllo della strumentazione Questa lezione descrive come utilizzare LabVIEW per controllare ed acquisire dati da strumentazione esterna collegata tramite GPIB e porte seriali. Utilizzate i driver della strumentazione insieme con le funzioni a basso livello per realizzare I/O di strumenti.

Imparerete: PP. A conoscere il controllo della strumentazione QQ. A conoscere la comunicazione e la configurazione tramite GPIB RR. conoscere i driver degli strumenti

A

SS. Ad utilizzare VI driver degli strumenti TT.A conoscere le VISA UU. utilizzare i VI VISA e le relative funzioni

Ad

VV. conoscere la comunicazione su porta seriale

A

WW. trasferire forme d’onda

A

ď›™ National Instruments Corporation

9-1

LabVIEW Corso Base I


Lezione 9

Controllo della strumentazione

A. Panoramica sul controllo della strumentazione Non avete limiti sul tipo di strumento che controllate se scegliete tecnologie di controllo industriale standard. Potete utilizzare strumenti di molte categorie diverse quali dispositivi seriali, GPIB, VXI, PXI, strumenti basati su PC, Ethernet, SCSI, CAMAC e paralleli. Questa lezione descrive i due metodi di comunicazione con gli strumenti più importanti, quello GPIB e quello seriale. Prendete nota dei punti seguenti per il controllo tramite PC degli strumenti:

LabVIEW Corso Base I

Ÿ

Tipo di connettore (pinouts) sullo strumento

Ÿ

Cavi necessari – null-modem, numero di pin, maschio/femmina

Ÿ

Caratteristiche elettriche – livelli dei segnali, messa a terra, restrizioni sulla lunghezza del cavo

Ÿ

Protocolli di comunicazione adottati – comandi ASCII, comandi binari, formato dei dati

Ÿ

Driver software disponibili

9-2

 National Instruments Corporation


Lezione 9 Controllo della strumentazione

B. Comunicazione tramite GPIB e configurazione Lo standard ANSI/IEEE 488.1-1987, conosciuto anche come General Purpose Interface Bus (GPIB), descrive un’interfaccia standard per la comunicazione tra strumenti e controllori di varie case, come scanner e registratori di pellicole. Esso contiene informazioni sulle specifiche elettriche, meccaniche e funzionali. GPIB è un’interfaccia per la comunicazione digitale, parallela a 8 bit, con velocità di trasferimento dei dati di 1 Mbyte/s e superiori, utilizzando un handshake a tre fili. Il bus supporta un System Controller, di solito un computer, e fino a 14 strumenti aggiuntivi. Lo Standard ANSI/IEEE 488.2-1992 estende la IEEE 488.1 definendo un protocollo di comunicazione su bus, un insieme comune di codici e formati dei dati e un insieme generale di comandi del dispositivo. Gli strumenti GPIB offrono agli ingegneri addetti ai test e alla produzione la più ampia scelta di case e di strumenti per applicazioni di test da quelle general-purpose fino a quelle più spinte. Gli strumenti GPIB sono stati tradizionalmente utilizzati come strumenti stand-alone da banco in cui le misure venivano prese a mano. La GPIB è un bus parallelo a 24 conduttori costituito da otto linee dati, cinque linee di gestione del bus (ATN, EOI, IFC, REN e SRQ), tre linee di handshake e otto linee di terra. La GPIB utilizza uno schema di trasferimento dei dati byte-seriale e asincrono. Ciò significa che interi byte vengono scambiati sul bus in maniera sequenziale ad una velocità determinata dal partecipante più lento. Siccome l’unità dei dati sulla GPIB è il byte, i messaggi trasferiti sono frequentemente codificati come stringhe di caratteri ASCII. Tutti i dispositivi GPIB e le interfacce devono avere un unico indirizzo GPIB compreso tra 0 e 30. L’indirizzo 0 viene assegnato normalmente all’interfaccia GPIB. Gli strumenti sulla GPIB possono utilizzare gli indirizzi da 1 a 30. I dispositivi GPIB possono essere di tipo talker, listener o controller. Un talker emette messaggi contenenti dati. Un listener riceve messaggi contenenti dati. Il controller, di solito un computer, gestisce il flusso di informazioni sul bus. Esso definisce i link di comunicazione e invia ai dispositivi comandi GPIB. I VI GPIB gestiscono automaticamente l’indirizzamento e la maggior parte delle altre funzioni di controllo del bus. Potete concludere un trasferimento dati GPIB nei tre modi seguenti: Ÿ

La GPIB comprende una linea hardware (EOI) che può essere dichiarata con l’ultimo byte dati. Questo è il metodo preferito.

Ÿ

Inserite un carattere particolare di fine stringa (EOS) alla fine della stringa dati stessa. Alcuni strumenti usano questo metodo al posto o in aggiunta alla dichiarazione della linea EOI.

 National Instruments Corporation

9-3

LabVIEW Corso Base I


Lezione 9

Controllo della strumentazione

Ÿ

Il listener conta i byte scambiati e arresta la lettura quando raggiunge un limite di conteggio dei byte. Questo metodo viene spesso utilizzato come arresto di default perché il trasferimento si ferma sulla OR logica di EOI, EOS (se utilizzato) insieme con il conteggio dei byte. Perciò dovete impostare tipicamente il conteggio dei byte ad un numero uguale o superiore del numero atteso di byte.

Per ottenere l’elevata velocità di trasferimento per cui è stata progettata la GPIB, dovete limitare il numero di dispositivi sul bus e la distanza fisica tra i dispositivi. Tipicamente vi sono le seguenti restrizioni: Ÿ

Una distanza massima di 4 m tra due dispositivi qualsiasi e una distanza media fra l’uno e l’altro di 2 m.

Ÿ

Lunghezza totale del cavo di 20 m

Ÿ

Un massimo di 15 dispositivi collegati su ogni bus, con almeno i due terzi accesi

Per un funzionamento in alta velocità, dovete osservare le seguenti restrizioni: Ÿ

Tutti i dispositivi presenti nel sistema devono essere accesi.

Ÿ

Le lunghezze dei cavi devono essere le più brevi possibile con un massimo di 15 m di cavo per ogni sistema.

Ÿ

Ci deve essere almeno un carico equivalente al dispositivo per metro di cavo.

Se volete superare queste limitazioni, potete utilizzare un bus extender per aumentare la lunghezza del cavo o un bus expander per aumentare il numero di carichi. Potete ordinare bus extender e expander dalla National Instruments. Nota

Fate riferimento al sito web di supporto per la GPIB della National Instruments ni.com/support/gpibsupp.htm per ulteriori informazioni sulla GPIB.

Architettura software L’architettura software per il controllo di strumenti GPIB utilizzando LabVIEW è simile all’architettura per le DAQ. La vostra interfaccia GPIB comprende un insieme di driver per quell’interfaccia. Questi driver sono anche disponibili sul CD di LabVIEW. Installate sempre la versione più recente di questi driver a meno che non vi vengano date altre informazioni sulle note della versione per l’interfaccia GPIB o LabVIEW. L’illustrazione seguente mostra l’architettura software su Windows.

LabVIEW Corso Base I

9-4

 National Instruments Corporation


Lezione 9 Controllo della strumentazione

Strumenti di diagnostica

e configurazione

LabVIEW

VI e funzioni per l’I/O di strumenti Measurement & Automation Explorer

Software dei Driver (DLL)

Windows Registry e Device Manager Interfaccia GPIB

(Windows)

Utilizzate Measurement & Automation Explorer per configurare e provare l’interfaccia GPIB. Measurement & Automation Explorer interagisce con i diversi strumenti di diagnostica e di configurazione installati con il driver e anche con il Windows Registry e il Device Manager. Il software a livello di driver si presenta come una DLL e contiene tutte le funzioni che comunicano direttamente con l’interfaccia GPIB. I VI Instrument I/O e le funzioni richiamano direttamente il software del driver.

Software di configurazione (Windows) Nota (Macintosh e UNIX) Fate riferimento alla documentazione della vostra GPIB

per informazioni sulla configurazione e il test della vostra interfaccia. Measurement & Automation Explorer è l’utility di configurazione per il software e l’hardware della National Instruments. Esso può anche eseguire diagnostiche sul sistema, aggiungere nuovi canali, interfacce e canali virtuali, e visualizzare dispositivi e strumenti collegati al vostro sistema. Aprite Measurement & Automation Explorer cliccando due volte sulla sua icona sul desktop o selezionando Tools»Measurement & Automation Explorer. Il riquadro Configuration di Measurement & Automation Explorer comprende le seguenti sezioni: Ÿ

Data Neighborhood – Utilizzate questa sezione per creare canali virtuali, alias e tag per canali o misure configurate in Devices and Interfaces come avete fatto nella Lezione 8, Acquisizione dati e forme d’onda.

 National Instruments Corporation

9-5

LabVIEW Corso Base I


Lezione 9

Controllo della strumentazione

Ÿ

Devices and Interfaces – Utilizzate questa sezione per configurare risorse e altre proprietà fisiche dei dispositivi e delle interfacce e per visualizzare attributi di uno o più dispositivi, come i numeri seriali.

Ÿ

Scales – Utilizzate questa sezione per impostare semplici operazioni da eseguire sui dati, come la trasformazione della lettura della temperatura dalla DAQ Signal Accessory da volt in gradi Celsius.

Ÿ

Software – Utilizzate questa sezione per determinare quali driver e software applicativo sono installati e il loro numero di versione.

Configurate gli oggetti elencati in Measurement & Automation Explorer cliccando con il tasto destro del mouse sulla voce e selezionando un’opzione dal menu rapido. L’esempio seguente mostra un’interfaccia GPIB in Measurement & Automation Explorer dopo aver cliccato sul pulsante Scan for Instruments nella barra degli strumenti.

LabVIEW Corso Base I

9-6

 National Instruments Corporation


Lezione 9 Controllo della strumentazione

Esercitazione 9-1 Obiettivo:

(solo Windows)

Utilizzare Measurement & Automation Explorer per esaminare le impostazioni dell’interfaccia GPIB, rilevare gli strumenti e comunicare con uno strumento. 99. Spegnete l’NI Instrument Simulator e configuratelo per comunicare tramite GPIB impostando il seguente banco di sinistra di interruttori sul lato della cassetta.

100. Accen dete l’NI Instrument Simulator e verificate che i LED Power e Ready siano accesi. 101. Avvia te Measurement & Automation Explorer cliccando due volte sull’icona del desktop o selezionando Tools»Measurement & Automation Explorer in LabVIEW. 102. Espan dete la sezione Devices and Interfaces per visualizzare le interfacce installate. Se è presente un’interfaccia GPIB, il software NI-488.2 è caricato correttamente sul vostro computer. 103. Selezi onate l’interfaccia GPIB e cliccate sul pulsante Properties nella barra degli strumenti per visualizzare la finestra di dialogo Properties. 104. Esami nate le impostazioni dell’interfaccia GPIB ma non modificatele e cliccate sul pulsante OK. 105. Assic uratevi che l’interfaccia GPIB sia ancora selezionata nella sezione Devices and Interfaces e cliccate sul pulsante Scan for Instruments nella barra degli strumenti. 106. Espan dete la sezione GPIB Board. Compare uno strumento denominato Instrument0. 107. Clicca te su Instrument0 per visualizzare le informazioni su di esso nel riquadro di destra di Measurement & Automation Explorer. L’NI Instrument Simulator ha un indirizzo primario (PAD) per la GPIB di 2.

 National Instruments Corporation

9-7

LabVIEW Corso Base I


Lezione 9

Controllo della strumentazione

Nota

Voi potreste avere bisogno di chiudere l’help online cliccando sul pulsante Show/Hide nell’angolo superiore destro di Measurement & Automation Explorer per visualizzare le informazioni su Instrument0. 108. Clicca te sul pulsante Communicate with Instrument sulla barra degli strumenti. Compare una finestra interattiva, che potete usare per interrogare lo strumento, scriverci o leggere da esso.

LabVIEW Corso Base I

9-8

ď›™ National Instruments Corporation


Lezione 9 Controllo della strumentazione

109. Digita te *IDN? in Send String e cliccate sul pulsante Query. Lo strumento fornisce il suo codice di fabbricazione e del modello in String received. Potete utilizzare questa finestra per risolvere problemi dello strumento o per verificare che quei comandi particolari funzionino come descritto nella documentazione dello strumento. 110. Digita te MEAS:DC? in Send String e cliccate sul pulsante Query. L’NI Instrument Simulator fornisce una misura di tensione simulata. 111. Clicca te nuovamente sul pulsante Query per ottenere un valore diverso. 112. te sul pulsante Exit.

Clicca

113. Impos tate un alias VISA per l’NI Instrument Simulator, affinché possiate utilizzare l’alias invece di ricordare l’indirizzo primario. a. Mentre è selezionato Instrument0 in Measurement & Automation Explorer, cliccate sul pulsante VISA Properties per visualizzare la finestra di dialogo Properties. b. Digitate devsim in VISA Alias e cliccate sul pulsante OK. Utilizzerete questo alias in questa lezione. 114. Selezi onate File»Exit per uscire da Measurement & Automation Explorer.

Fine dell’esercitazione 9-1

 National Instruments Corporation

9-9

LabVIEW Corso Base I


Lezione 9

Controllo della strumentazione

C. Comunicazione con gli strumenti Potete utilizzare LabVIEW per comunicare con strumenti GPIB in uno dei due modi principali seguenti: Ÿ

I VI Instrument I/O e le funzioni comunicano con il software a livello di driver per l’interfaccia GPIB. Perciò potete realizzare VI che utilizzano questi VI e le funzioni direttamente. Comunque, ogni strumento possiede un insieme di comandi specifici o protocollo per l’invio e la ricezione di dati. L’apprendimento e l’utilizzo di questi comandi e del protocollo può essere difficoltoso.

Ÿ

Un driver di strumenti è un insieme di funzioni software modulare che utilizza i comandi o il protocollo dello strumento per eseguire operazioni comuni con lo strumento. Il driver dello strumento chiama anche i VI corretti e le funzioni per lo strumento. I driver di strumenti di LabVIEW eliminano la necessità di imparare i comandi complessi di programmazione a basso livello per ogni strumento.

Driver degli strumenti La libreria dei driver degli strumenti di LabVIEW contiene driver degli strumenti per una varietà di strumenti programmabili che utilizzano GPIB, VXI o interfacce seriali. I driver degli strumenti ricevono, analizzano e portano in scala le stringhe degli strumenti per poterle utilizzare nelle applicazioni di test. I driver degli strumenti aiutano a rendere le applicazioni di test più facili da mantenere perché i driver contengono tutti gli I/O di uno strumento in una libreria, separati dal rimanente codice. Quando aggiornate il vostro hardware, è più facile aggiornare la vostra applicazione perché tutte le specifiche del codice di quello strumento sono contenute nel driver dello strumento. La libreria dei driver degli strumenti di LabVIEW si trova sul CD di LabVIEW. Potete anche scaricare i driver dal sito della National Instruments all’indirizzo ni.com. Per installare i driver degli strumenti di LabVIEW, decomprimete il file del driver dello strumento in una directory di file per i driver degli strumenti. Ponete questa directory in labview\instr.lib. La volta successiva che aprite LabVIEW, potete accedere ai VI del driver dello strumento sulla palette Functions»Instrument I/O»Instrument Drivers.

Esempio Getting Started Tutti i driver degli strumenti contengono un esempio che potete utilizzare per provare che quei VI dei driver degli strumenti stanno comunicando con lo strumento. Specificate l’indirizzo GPIB corretto per lo strumento così come è stato configurato in Measurement & Automation Explorer.

LabVIEW Corso Base I

9-10

 National Instruments Corporation


Lezione 9 Controllo della strumentazione

Esercitazione 9-2 Obiettivo:

VI NI DEVSIM Getting Started

Esaminare i driver degli strumenti di LabVIEW installati ed utilizzare il VI di esempio del driver degli strumenti NI DevSim. Nota

Se avete uno strumento differente, installate un driver free di LabVIEW dal sito della National Instruments o dal CD di LabVIEW. In LabVIEW selezionate Tools»Instrumentation»Instrument Driver Network per visitare l’Instrument Driver Network all’indirizzo ni.com. 44. Aprite un nuovo VI e visualizzate lo schema a blocchi seguente. 45. Selezionate la palette Functions»Instrument I/O»Instrument Drivers e registrate quali driver di strumenti sono installati: ________________________________________________________ ________________________________________________________ ________________________________________________________ ________________________________________________________ 46. Selezionate la subpalette NI Device Simulator ed esaminate le categorie dei VI dei driver degli strumenti. 47. Selezionate la subpalette Application Examples ed inserite il VI NI DEVSIM Getting Started sullo schema a blocchi.

Pannello frontale 48. Cliccate due volte sul VI NI DEVSIM Getting Started per visualizzare ed esaminare il pannello frontale seguente.

49. Avviate il VI. Il simulatore fornisce una tensione DC casuale e genera la forma d’onda richiesta sul grafico. Il simulatore potrebbe impiegare parecchi secondi per acquisire la forma d’onda.

 National Instruments Corporation

9-11

LabVIEW Corso Base I


Lezione 9

Controllo della strumentazione

Potete simulare differenti forme d’onda muovendo il cursore Waveform ed avviando nuovamente il VI.

Schema a blocchi 50. Visualizzate ed esaminate lo schema a blocchi seguente.

Il VI Initialize inizializza il dispositivo e il VI Application Example invia i comandi per la configurazione e la richiesta di informazioni allo strumento. Il VI Close termina la comunicazione. Tutti i VI che utilizzano i driver degli strumenti implementano questa struttura di inizializzazione, comunicazione e shutdown. 51. Chiudete il VI. Non salvate le modifiche.

Fine dell’esercitazione 9-2

LabVIEW Corso Base I

9-12

ď›™ National Instruments Corporation


Lezione 9 Controllo della strumentazione

D. Utilizzo dei VI driver degli strumenti Nell’esercitazione 9-2, lo schema a blocchi del VI NI DEVSIM Getting Started conteneva VI generali per il simulatore, che sono realizzati dentro LabVIEW e organizzati nelle categorie delle funzioni degli strumenti.

Componenti di un driver degli strumenti Tutti i driver degli strumenti in libreria hanno la stessa gerarchia di base dei VI. La gerarchia, la sequenza di VI e la gestione degli errori sono gli stessi di quelli usati in altre aree di I/O in LabVIEW, come I/O di file, DAQ, TCP/IP e così via. Fate riferimento alla Sezione C, VI e funzioni per I/O di file, della lezione 7, Stringhe e I/O di file, per ulteriori informazioni sulla gestione degli errori. L’illustrazione seguente mostra la gerarchia di un driver di strumenti.

Le funzioni ad alto livello sono realizzate a partire da quelle a basso livello. Comunque, le funzioni ad alto livello, come il VI Getting Started nell’esercitazione 9-2 sono facili da utilizzare ed hanno pannelli frontali che assomigliano allo strumento. I driver degli strumenti hanno VI nelle seguenti categorie: Ÿ

Initialize – Inizializza il canale di comunicazione dello strumento. Questo VI può anche eseguire una richiesta di identificazione e un’operazione di reset e può svolgere tutte le operazioni necessarie per porre lo strumento nel suo stato acceso di default o un altro stato specificato.

Ÿ

Configuration – Configura lo strumento per svolgere operazioni, come l’impostazione della velocità del trigger.

Ÿ

Action/Status – Contiene due tipi di VI. I VI Action fanno sì che lo strumento inizi o termini le operazioni di misura o di test.

 National Instruments Corporation

9-13

LabVIEW Corso Base I


Lezione 9

Controllo della strumentazione

I VI di stato ottengono lo stato corrente dello strumento o lo stato delle operazioni in sospeso. Un esempio di VI in azione è Acquire Single Shot. Un esempio di VI di stato è Query Transfer Pending. Ÿ

Data – Trasferisce dati verso o dallo strumento, come la lettura di una forma d’onda misurata dallo strumento o lo scaricamento di una forma d’onda sullo strumento.

Ÿ

Utility – Esegue una grande varietà di funzioni, come il ripristino, l’autodiagnostica, l’interrogazione dell’errore e di revisione.

Ÿ

Close – Chiude il canale di comunicazione verso lo strumento e disalloca le risorse per quello strumento.

Tutti i driver degli strumenti della National Instruments devono implementare le funzioni seguenti: inizializza, chiude, ripristina, autodiagnostica, interrogazione di revisione e di errore e messaggio di errore.

Esempi di applicazioni LabVIEW comprende anche VI esempi di applicazioni che mostrano come utilizzare i VI componenti per svolgere compiti comuni. Tipicamente, questo comprende la configurazione, il trigger e le restituzione di misure da uno strumento. Un VI esempio di applicazione non inizializza o chiude il driver dello strumento. Questi VI non sono progettati per essere un pannello frontale dello strumento, ma piuttosto per dimostrare le potenzialità dei driver degli strumenti e guidarvi nello sviluppo del vostro driver dello strumento.

Ingressi e uscite dei VI driver di strumenti Proprio come tutti i driver degli strumenti condividono una gerarchia comune dei VI, essi condividono anche ingressi e uscite.

Resource Name o Instrument Descriptor Quando inizializzate il canale di comunicazione su uno strumento, dovete conoscere il nome della risorsa o il descrittore dello strumento. Una risorsa è uno strumento o un’interfaccia e il descrittore dello strumento è il nome esatto e la posizione di una risorsa nel formato seguente: Interface Type [board index] : :Address: :INSTR

Per esempio, GPIB::2::INSTR è il descrittore dello strumento per uno strumento GPIB all’indirizzo 2. Il controllo del nome della risorsa VISA che si trova nella palette Controls»I/O è simile al controllo del nome del canale DAQ, ma viene specificatamente usato per il controllo dello strumento. Fate riferimento alla Sezione E, VISA, per ulteriori informazioni sulle VISA.

LabVIEW Corso Base I

9-14

 National Instruments Corporation


Lezione 9 Controllo della strumentazione

Potete utilizzare Measurement & Automation Explorer per determinare quali risorse e indirizzi di strumenti sono disponibili, come avete fatto nell’esercitazione 9-1. In quell’esercitazione avete assegnato un alias VISA di devsim all’NI Instrument Simulator. L’alias rende più facile comunicare con gli strumenti perché non avete più bisogno di memorizzare quale interfaccia e indirizzo ogni strumento utilizza. Potete utilizzare l’alias nel controllo del nome della risorsa VISA invece del descrittore dello strumento. Per esempio potete digitare devsim invece di GPIB::2::INSTR.

Sessioni VISA Dopo aver inizializzato uno strumento, il VI Initialize fornisce un numero di sessione VISA. La sessione VISA è un collegamento o un link ad una risorsa come lo strumento. Non avete bisogno di visualizzare questo valore. Comunque, ogni volta che comunicate con quel dispositivo, dovete collegare l’ingresso della sessione VISA sul VI driver dello strumento: Dopo che avete terminato la comunicazione con lo strumento, utilizzate il VI Close per chiudere tutti i riferimenti o le risorse dello strumento.

Applicazione esempio di driver degli strumenti Lo schema a blocchi seguente inizializza lo strumento con l’alias devsim, utilizza un VI di configurazione per selezionare una forma d’onda, utilizza due VI dati per leggere la forma d’onda e le informazioni sulla scala, chiude lo strumento e verifica lo stato dell’errore. Ogni applicazione che utilizza un driver degli strumenti ha una simile sequenza di eventi.

 National Instruments Corporation

9-15

LabVIEW Corso Base I


Lezione 9

Controllo della strumentazione

Esercitazione 9-3 Obiettivo:

VI Voltage Monitor

Costruire un VI che utilizzi i VI driver degli strumenti DevSim per acquisire e rappresentare tensioni. Completate i passi seguenti per creare un VI che acquisisca una misura di tensione DC dall’NI Instrument Simulator una volta al secondo e la rappresenti in un grafico fino a quando cliccate un pulsante. Quando ogni valore è stato acquisito, il VI lo confronta con i valori precedenti minimo e massimo. Il VI calcola e visualizza i valori minimo e massimo continuamente sul pannello frontale.

Pannello frontale 13. Aprite un nuovo VI e realizzate il pannello frontale seguente.

a. Inserite un controllo del nome di risorsa VISA che si trova nella palette Controls»I/O. b. Impostate la scala dell’asse x del grafico per mostrare i valori incrementali.

LabVIEW Corso Base I

9-16

 National Instruments Corporation


Lezione 9 Controllo della strumentazione

Schema a blocchi 14. Realizzate lo schema a blocchi seguente.

a. Inserite un Ciclo While che si trova nella palette Functions»Structures per continuare ad eseguire misure di tensione in c.c. fino a quando cliccate sul pulsante STOP. b. Create due registri a scorrimento cliccando con il tasto destro del mouse sul bordo destro o sinistro del ciclo e selezionando Add Shift Register dal menu rapido. c. Inserite il VI NI DEVSIM Initialize che si trova nella palette Functions»Instrument I/O»Instrument Drivers»NI Device Simulator. Questo VI apre la comunicazione tra LabVIEW e l’NI Instrument Simulator. d. Cliccate con il tasto destro del mouse sul terminale d’ingresso ID Query e selezionate Create»Constant dal menu rapido. Utilizzate lo strumento Modifica per modificarne il valore a FALSE. Collegate anche la costante booleana al terminale d’ingresso Reset. e. Inserite il VI NI DEVSIM Multimeter Configuration che si trova nella palette Functions»Instrument I/O»Instrument Drivers»NI Device Simulator»Configuration. Questo VI configura l’intervallo delle misure di tensione che l’NI Instrument Simulator genera. Il default è da 0.0 a 10.0 V in c.c.. f. Inserite il VI NI DEVSIM Measure DC Voltage che si trova nella palette Functions»Instrument I/O»Instrument Drivers»NI Device Simulator»Data. Questo VI fornisce una misura di tensione simulata dall’NI Instrument Simulator.

 National Instruments Corporation

9-17

LabVIEW Corso Base I


Lezione 9

Controllo della strumentazione

g. Inserite il VI NI DEVSIM Close che si trova nella palette Functions»Instrument I/O»Instrument Drivers»NI Device Simulator. Questo VI termina la comunicazione tra LabVIEW e l’NI Instrument Simulator. h. Inserite la funzione Wait Until Next ms Multiple che si trova nella palette Functions»Time & Dialog. Questa funzione determina l’esecuzione del Ciclo While ogni secondo. i. Inserite la funzione Max & Min che si trova nella palette Functions»Comparison. Utilizzate due di queste funzioni per verificare la tensione corrente rispetto ai valori minimo e massimo memorizzati nei registri a scorrimento. j. Inserite il VI Simple Error Handler che si trova nella palette Functions»Time & Dialog. Questo VI visualizza una finestra di dialogo in caso di errore e visualizza le informazioni sull’errore. k. Inserite la funzione Unbundle by Name che si trova nella palette Functions»Clusters. Questa funzione rimuove status dal cluster di errore. l. Inserite la funzione Or che si trova nella palette Functions»Boolean. Questa funzione controlla quando termina il Ciclo While. In caso di errore o se cliccate sul pulsante STOP, il Ciclo While si arresta. Nota Non avete bisogno di collegare ogni terminale a ciascun nodo. Collegate

solo gli ingressi necessari per ogni nodo, come il descrittore dello strumento, la sessione VISA e l’I/O di errore. 15. Salvate il VI come Voltage Monitor.vi. 16. Assicuratevi che l’NI Instrument Simulator sia acceso. 17. Avviate il VI. I LED si alternano tra Listen e Talk mentre LabVIEW comunica con lo strumento GPIB ogni secondo per prendere una lettura di tensione simulata. Questa tensione viene visualizzata sul grafico e i valori minimo e massimo si aggiornano di conseguenza. 18. Fermate e chiudete il VI.

Fine dell’esercitazione 9-3

LabVIEW Corso Base I

9-18

 National Instruments Corporation


Lezione 9 Controllo della strumentazione

E. VISA Virtual Instrument Software Architecture (VISA) è il livello più basso di funzioni nei VI driver di strumenti di LabVIEW che comunica con il software del driver.

Panoramica Nel 1993, National Instruments si è unita con GenRad, Racal Instruments, Tektronix e Wavetek per costituire la VXIplug&play Systems Alliance. Gli obiettivi dell’accordo sono di assicurare l’interoperabilità multivendor di sistemi VXI e di ridurre il tempo di sviluppo per un sistema operativo. Un punto fondamentale degli obiettivi era di sviluppare un nuovo standard per i driver degli strumenti, i pannelli frontali e il software di interfaccia I/O. Il termine VXIplug&play è stato scelto per indicare la conformità dell’hardware e del software a questi standard. Nel dirigere gli sforzi verso la standardizzazione del software, i membri della VXIplug&play hanno individuato il seguente insieme di linee guida: Ÿ

Massimizzare la facilità d’uso e le prestazioni.

Ÿ

Mantenere la compatibilità sul lungo termine con l’installazione di base.

Ÿ

Mantenere architetture aperte ai prodotti di costruttori diversi.

Ÿ

Massimizzare la trasportabilità su piattaforme diverse.

Ÿ

Massimizzare l’espandibilità e la modularità dei sistemi.

Ÿ

Massimizzare il riutilizzo del software.

Ÿ

Standardizzare l’uso di elementi software del sistema.

Ÿ

Trattare i driver degli strumenti come parte dello strumento.

Ÿ

Adattarsi agli standard utilizzati.

Ÿ

Massimizzare il supporto cooperativo degli utenti.

VISA è il linguaggio software di I/O VXIplug&play che è alla base degli sforzi di standardizzazione della VXIplug&play Systems Alliance. VISA di per sé non fornisce la possibilità di programmare strumentazione. È una API ad alto livello che richiama driver a basso livello. VISA può controllare VXI, GPIB, seriali o strumenti basati sul computer e rende le chiamate ai driver corretti dipendenti dal tipo di strumento utilizzato. Quando si analizzano problemi VISA, ricordate questa gerarchia. Un problema apparente di VISA potrebbe essere un problema di installazione con uno dei driver che VISA richiama. In LabVIEW, VISA è una libreria singola di funzioni che utilizzate per comunicare con GPIB, seriali, VXI e strumenti basati su computer. Non avete bisogno di utilizzare palette separate di I/O per programmare uno strumento. Per esempio, alcuni strumenti vi forniscono una scelta per il

 National Instruments Corporation

9-19

LabVIEW Corso Base I


Lezione 9

Controllo della strumentazione

tipo di interfaccia. Se il driver degli strumenti di LabVIEW fosse stato scritto con le funzioni presenti nella palette Functions»Instrument I/O»GPIB, questi VI driver di strumenti non avrebbero lavorato con l’interfaccia della porta seriale. VISA risolve questo problema fornendo un singolo insieme di funzioni che lavorano con ogni tipo di interfaccia. Quindi, tutti i driver degli strumenti di LabVIEW utilizzano VISA come linguaggio di I/O.

Terminologia della programmazione VISA Le funzioni che potete utilizzare con una risorsa sono le operazioni. La risorsa possiede anche variabili, o attributi, che contengono informazioni relative alla risorsa. La terminologia seguente è simile a quella adottata per i VI driver di strumenti: Ÿ

Resource – Un qualsiasi strumento nel sistema, comprese le porte seriali e parallele.

Ÿ

Session – Dovete aprire una sessione VISA verso una risorsa per comunicare con essa, analogamente ad un canale di comunicazione. Quando aprite una sessione verso una risorsa, LabVIEW fornisce un numero di sessione VISA, che è un unico refnum di quello strumento. Dovete utilizzare il numero di sessione in tutte le funzioni VISA successive.

Ÿ

Instrument Descriptor – Il nome esatto della risorsa. Il descrittore specifica il tipo di interfaccia (GPIB, VXI, ASRL), l’indirizzo del dispositivo (indirizzo logico o indirizzo primario) e il tipo di sessione VISA (INSTR o Event).

Il descrittore dello strumento è simile ad un numero telefonico, la risorsa è simile alla persona con cui volete parlare e la sessione è simile alla linea telefonica. Ogni chiamata utilizza la propria linea e l’attraversamento di queste linee comporta un errore. La tabella seguente mostra la sintassi corretta del descrittore dello strumento. Interfaccia Seriale asincrona GPIB

Sintassi

ASRL[board][::INSTR] GPIB[board]::primary address[::secondary address][::INSTR] Strumento VXI attraverso un VXI[board]::VXI logical address[::INSTR]

controllore embedded o MXIbus GPIB-VXI[board][::GPIB-VXI primary Controllore GPIB-VXI address]::VXI logical address[::INSTR]

Potete utilizzare un alias che assegnate in Measurement & Automation Explorer invece del descrittore dello strumento. (Macintosh) Modificate il file visaconf.ini per assegnare un alias VISA. (UNIX) Utilizzate l’utility visaconf.

LabVIEW Corso Base I

9-20

 National Instruments Corporation


Lezione 9 Controllo della strumentazione

F. Utilizzo dei VI e delle funzioni VISA Le funzioni VISA che utilizzate più spesso per comunicare con uno strumento GPIB sono VISA Write e VISA Read. La maggior parte degli strumenti GPIB richiede che voi inviate le informazioni sotto forma di comando o interrogazione prima che possiate leggere le informazioni provenienti dallo strumento. Perciò la funzione VISA Write è di solito seguita dalla funzione VISA Read. La funzione VISA Write scrive la stringa write buffer sul dispositivo specificato da VISA resource name. dup VISA resource name fornisce la stessa opportunità su quella sessione. Sulle piattaforme UNIX, i dati vengono scritti in maniera sincrona. Su tutte le altre piattaforme, la scrittura è asincrona. return count contiene il numero di byte attualmente trasferiti sulla GPIB. I cluster error in e error out contengono informazioni sull’errore. La funzione VISA Read legge i dati dal dispositivo specificato da VISA resource name. byte count indica il numero di byte da leggere nella stringa restituita da read buffer. dup VISA resource name fornisce la stessa opportunità in quella sessione. Sulle piattaforme UNIX, i dati vengono letti in maniera sincrona. Su tutte le altre piattaforme, la lettura è asincrona. return count contiene il numero di byte attualmente trasferiti sulla GPIB. I cluster error in e error out contengono informazioni sull’errore.

L’esempio precedente mostra come potete effettuare una richiesta di identificazione di un dispositivo utilizzando le funzioni VISA. Notate che l’intero descrittore dello strumento è inserito nella costante VISA resource name. Potevate anche usare gli alias VISA.

 National Instruments Corporation

9-21

LabVIEW Corso Base I


Lezione 9

Controllo della strumentazione

Esercitazione 9-4 Obiettivo:

VI Read VISA Waveform

Realizzare un VI che utilizzi le funzioni VISA per comunicare con un’interfaccia GPIB. Completate i passi seguenti per creare un VI che acquisisca una forma d’onda dall’NI Instrument Simulator.

Pannello frontale 1. Aprite un nuovo VI e realizzate il pannello frontale seguente.

c. Utilizzate lo strumento Testo per inserire i valori seguenti nella casella di testo Waveform Type che si trova nella palette Controls»Ring & Enum: 0 = Sine 1 = Square 2 = Noisy Sine 3 = Random 4 = Chirp

d. Digitate la prima voce nel ring di testo. Cliccate con il tasto destro del mouse sul controllo del ring, selezionate Add Item After dal menu rapido e digitate la seconda voce nel controllo del ring.

LabVIEW Corso Base I

9-22

 National Instruments Corporation


Lezione 9 Controllo della strumentazione

Schema a blocchi 2. Realizzate lo schema a blocchi seguente.

a. Inserite una costante matrice che si trova nella palette Functions»Array. Questa costante costruisce la stringa di comando per l’NI Instrument Simulator. Ognuno dei cinque tipi di forme d’onda viene rappresentato da un elemento in questa matrice. b. Inserite tre costanti di stringa che si trovano nella palette Functions»String. Inseritene una nella costante matrice e ridimensionate la costante matrice per mostrare cinque elementi. Inserite le altre due costanti di stringa come mostrato nello schema a blocchi precedente. c. Inserite la funzione Index Array che si trova nella palette Functions»Array. Questa funzione estrae l’elemento stringa della matrice che corrisponde al valore di Waveform Type. d. Inserite la funzione Concatenate Strings che si trova nella palette Functions»String. Questa funzione combina i frammenti di stringa in una stringa completa di comando per l’NI Instrument Simulator. e. Inserite la funzione VISA Write che si trova nella palette Functions»Instruments I/O»VISA. Questa funzione scrive la stringa di comando sull’NI Instrument Simulator. Nota Se non avete u’interfaccia GPIB o un NI Instrument Simulator inserite il

VI (demo) VISA Write che si trova nella palette Functions»User Libraries»Basics I Course, per simulare la scrittura di un comando sullo strumento. f. Inserite la funzione VISA Read che si trova nella palette Functions»Instruments I/O»VISA. Questa funzione legge la risposta dell’NI Instrument Simulator. Nota Se non avete un’interfaccia GPIB o un NI Instrument Simulator inserite il

VI (demo) VISA Read che si trova nella palette Functions»User Libraries»Basics I Course, per simulare la lettura di una stringa dallo strumento.

 National Instruments Corporation

9-23

LabVIEW Corso Base I


Lezione 9

Controllo della strumentazione

g. Inserite il VI Simple Error Handler che si trova nella palette Functions»Time & Dialog. Questo VI visualizza una finestra di dialogo in caso di errore e visualizza le informazioni sull’errore. h. Inserite il VI Extract Numbers che si trova nella palette Functions»User Libraries»Basics I Course. Questo VI converte la stringa delimitata da virgole fornita dall’NI Instrument Simulator in una matrice di numeri che il VI rappresenta sul grafico. 3. Salvate questo VI come Read VISA Waveform.vi. 4. Visualizzate

il

pannello frontale, digitate devsim o GPIB::2::INSTR in Instrument ed avviate il VI. Il VI rappresenta una forma d’onda fornita dall’NI Instrument Simulator che corrisponde al tipo di forma d’onda selezionato.

Nota Se le funzioni VISA forniscono un errore, la stringa di comando potrebbe

non essere formattata correttamente. Verificate con cura ogni carattere, la punteggiatura, gli spazi e le lettere maiuscole. Talvolta uno strumento si blocca o entra in uno stato non definito se viene inviata una stringa di comando sbagliata. Reinizializzate lo strumento portando il Power su off e quindi nuovamente su on. 5. Avviate il VI alcune volte richiedendo forme d’onda differenti ogni volta per vedere come la forma d’onda viene letta dall’NI Instrument Simulator. Ci vuole un secondo o quasi per lo strumento per processare l’informazione e inviare la forma d’onda sul vostro computer. 6. Chiudete il VI.

Fine dell’esercitazione 9-4

LabVIEW Corso Base I

9-24

 National Instruments Corporation


Lezione 9 Controllo della strumentazione

G. Comunicazione su porta seriale La comunicazione seriale è un mezzo conosciuto di trasmissione dati tra un computer ed un dispositivo periferico come uno strumento programmabile o anche un altro computer. La comunicazione seriale utilizza un trasmettitore per inviare dati, uno alla volta, su un’unica linea di comunicazione, ad un ricevitore. Potete utilizzare questo metodo quando le velocità di trasferimento dei dati sono basse e dovete trasferire dati su lunghe distanze. La comunicazione seriale è popolare perché molti computer hanno una o più porte seriali, e quindi non c’è bisogno di hardware aggiuntivo che non sia il cavo per collegare lo strumento al computer o due computer insieme.

1 Strumento RS 232

2 Cavo RS 232

3 Porta seriale

La comunicazione seriale richiede che voi specifichiate i quattro parametri seguenti: la velocità di trasferimento dati, il numero di bit dei dati che codifica un carattere, il valore del bit opzionale di parità e il numero di bit di stop. Ogni carattere trasmesso viene incluso in un pacchetto di caratteri che consiste in un unico bit di start seguito dai bit dati, il bit opzionale di parità e il bit o i bit di stop. Un tipico insieme di caratteri che codifica la lettera m è mostrato di seguito.

La velocità di trasferimento è una misura di quanto veloce si muovono i dati tra gli strumenti che utilizzano la comunicazione seriale. La RS-232 utilizza solo due stati di tensione, chiamati MARK e SPACE. In tale sistema di codifica a due stati, la velocità di trasferimento è identica al numero massimo di bit dell’informazione, inclusi i bit di controllo, che sono trasmessi al secondo.

 National Instruments Corporation

9-25

LabVIEW Corso Base I


Lezione 9

Controllo della strumentazione

MARK è una tensione negativa e SPACE è positiva. L’illustrazione precedente mostra come il segnale ideale appare su un oscilloscopio. Quella seguente è la tavola della verità per la RS-232: Segnale > +3 V = 0 Segnale < -3 V = 1 Il livello del segnale di uscita di solito oscilla tra +12 V e –12V. La zona morta tra +3 V e –3 V è destinata all’assorbimento del rumore di linea. Un bit di start segnala l’inizio di ogni insieme di caratteri. È una transizione dalla tensione negativa (MARK) a quella positiva (SPACE). La sua durata in secondi è il reciproco della velocità di trasferimento. Se lo strumento sta trasmettendo a 9600 baud, la durata del bit di start ed ogni bit successivo è di circa 0.104 ms. L’intero insieme di caratteri di undici bit dovrebbe essere trasmesso in circa 1.146 ms. I bit dati sono trasmessi capovolti e all’indietro. Cioè viene utilizzata la logica inversa e l’ordine di trasmissione è dal bit meno significativo (LSB) a quello più significativo (MSB). Per interpretare i bit dati in un insieme di caratteri , dovete leggere da destra verso sinistra e leggere 1 per tensione negativa e 0 per quella positiva. Ciò produce 1101101 (binario) o 6D (hex). Una tabella di conversione ASCII mostra che questa è la lettera m. Un bit opzionale di parità segue i bit dati nel pacchetto di caratteri. Il bit di parità, se presente, segue anch’esso la logica inversa, 1 per tensione negativa e 0 per quella positiva. Questo bit è incluso come semplice strumento di controllo dell’errore. Specificate prima se la parità della trasmissione è pari o dispari. Se la parità scelta è dispari, il trasmettitore imposta il bit di parità in modo tale da avere un numero dispari di uno tra i bit dati e il bit di parità. Questa trasmissione utilizza la parità dispari. Ci sono cinque uno tra i bit dati, già un numero dispari, e quindi il bit di parità è impostato su 0. L’ultima parte del pacchetto di caratteri consiste in 1, 1.5 o 2 bit di stop. Questi bit sono sempre rappresentati da una tensione negativa. Se non vengono trasmessi ulteriori caratteri, la linea rimane in una condizione di negativo (MARK). La trasmissione del successivo pacchetto di caratteri, se c’è, è annunciata da un bit a tensione positiva (SPACE).

Quanto veloce posso trasmettere? Conoscendo la struttura di un pacchetto di caratteri e il significato della velocità di trasferimento applicata alla comunicazione seriale, potete calcolare la massima velocità di trasmissione, in caratteri per secondo, per una data impostazione della comunicazione. Questa velocità è proprio la velocità di trasferimento divisa per i bit del pacchetto. Nell’esempio precedente, ci sono un totale di undici bit per pacchetto di caratteri.

LabVIEW Corso Base I

9-26

 National Instruments Corporation


Lezione 9 Controllo della strumentazione

Se la velocità di trasmissione è impostata a 9600 baud, ottenete 9600/11 = 872 caratteri per secondo. Notate che questa è la massima velocità di trasmissione dei caratteri. L’hardware da un lato e dall’altro del collegamento seriale potrebbe non essere in grado di raggiungere queste velocità per diverse ragioni.

Panoramica sull’hardware Ci sono molti differenti standard raccomandati per la comunicazione su porta seriale. Di seguito vengono presentati i più comuni.

RS-232 La RS-232 è uno standard sviluppato da Electronic Industries Association (EIA) e altre parti interessate, che definisce l’interfaccia seriale tra il Data Terminal Equipment (DTE) e il Data Communications Equipment (DCE). Lo standard RS-232 comprende le caratteristiche del segnale elettrico (livelli di tensione), caratteristiche dell’interfaccia meccanica (connettori), descrizione funzionale dei circuiti di scambio (la funzione di ogni segnale elettrico) ed alcune prescrizioni per i tipi comuni di collegamento terminale-modem. La revisione che si incontra più frequentemente di questo standard viene chiamata RS-232C. Parti di questo standard sono stati adottati (con diversi livelli di accordo) per l’utilizzo in comunicazioni seriali tra computer e stampanti, modem e altre apparecchiature. Le porte seriali sui personal computer standard IBM seguono la RS-232.

RS-449, RS-422, RS-423 Le RS-449, RS-422 e RS-423 sono standard EIA per la comunicazione seriale aggiuntivi rispetto alla RS-232. L’RS-449 è stato creato nel 1975 e si pensava soppiantasse l’RS-232, ma pochi costruttori hanno adottato il nuovo standard. L’RS-449 contiene due sottospecifiche chiamate RS-422 e RS-423. Mentre la RS-232 modula un segnale rispetto ad una terra comune, o trasmissione sbilanciata, RS-422 modula due segnali l’uno rispetto all’altro, o trasmissione differenziale. Il ricevitore RS-232C sente se il segnale ricevuto è sufficientemente negativo rispetto alla terra per essere all’1 logico, mentre il ricevitore RS-422 sente quale linea è più negativa rispetto all’altra. Ciò rende la RS-422 più immune al rumore e alle interferenze e più versatile sulle lunghe distanze. Le porte seriali Macintosh seguono la RS-422, che può essere convertita in RS-423 con un corretto collegamento di un cavo esterno. La RS-423 può quindi comunicare con la maggior parte dei dispositivi RS-232 su distanze di circa 15 m.

Collegamenti per la RS-232 I dispositivi che utilizzano cavi seriali per la loro comunicazione si suddividono in due categorie. Ci sono DCE e DTE. I DCE sono dispositivi come il modem, l’adattatore TA, il plotter e così via, mentre DTE è un computer o un terminale. Le porte seriali RS-232 hanno due

 National Instruments Corporation

9-27

LabVIEW Corso Base I


Lezione 9

Controllo della strumentazione

formati, il connettore tipo D a 25 pin e il connettore tipo D a 9 pin. Entrambi questi connettori sono maschi sul retro del PC. Quindi, avete bisogno di un connettore femmina sul dispositivo. La tabella seguente mostra i collegamenti dei pin per i connettori di tipo D a 9 e a 25 pin.

Funzione Dati Handshake

Comune Altro

Segnale TxD RxD RTS CTS DSR DCD DTR Com RI

PIN 3 2 7 8 6 1 4 5 9

DTE Uscita Ingresso Uscita Ingresso Ingresso Ingresso Uscita — Ingresso

DCE Ingresso Uscita Ingresso Uscita Uscita Uscita Ingresso — Uscita

Il connettore DB-9 si trova occasionalmente su piccole apparecchiature di laboratorio RS-232. È compatto, ed ha pin a sufficienza per l’insieme di base dei pin seriali (con un pin extra). Nota

I numeri di pin del connettore DB-9 per trasmettere e ricevere (3 e 2) sono opposti rispetto a quelli del connettore DB-25 (2 e 3). Attenzione a questa differenza quando state stabilendo se un dispositivo è DTE o DCE. Il connettore DB-25 è il connettore RS-232 standard, con pin a sufficienza per coprire tutti i segnali specificati nello standard. La tabella seguente mostra solo l’insieme di base dei pin che sono usati nella maggior parte delle interfacce RS-232.

LabVIEW Corso Base I

9-28

 National Instruments Corporation


Lezione 9 Controllo della strumentazione

Funzione Dati Handshake

Comune

Segnale TxD RxD RTS CTS DSR DCD DTR Com

PIN 2 3 4 5 6 8 20 7

DTE Uscita Ingresso Uscita Ingresso Ingresso Ingresso Uscita —

DCE Ingresso Uscita Ingresso Uscita Uscita Uscita Ingresso —

Panoramica sull’hardware Utilizzate i VI e le funzioni che si trovano nella palette Functions»Instrument I/O»Serial, per la comunicazione su porta seriale. Avete utilizzato alcune delle funzioni VISA su questa palette per la comunicazione GPIB. Le funzioni VISA Write e VISA Read lavorano con ogni tipo di comunicazione strumentale e sono le stesse se state effettuando una comunicazione GPIB o una seriale. Comunque, siccome la comunicazione seriale vi richiede di configurare parametri in più, dovete avviare la comunicazione su porta seriale con il VI VISA Configure Serial Port. Il VI VISA Configure Serial Port inizializza la porta individuata da VISA resource name sulle impostazioni definite, timeout imposta il valore di timeout per la comunicazione seriale. baud rate, data bits, parity e flow control definiscono quei parametri specifici della porta seriale. I cluster error in e error out mantengono le condizioni di errore per questo VI.

L’esempio precedente mostra come inviare il comando di richiesta dell’identificazione *IDN? allo strumento collegato sulla porta seriale COM2. Il VI VISA Configure Serial Port apre la comunicazione con COM2 e la imposta su 9600 baud, 8 bit dati, parità dispari, un bit di stop e un handshake software XON/XOFF. Quindi la funzione VISA Write invia il comando.

 National Instruments Corporation

9-29

LabVIEW Corso Base I


Lezione 9

Controllo della strumentazione

La funzione VISA Read copia fino a 200 byte nel buffer di lettura e la condizione di errore viene verificata dal VI Simple Error Handler. Nota

I VI e le funzioni che si trovano nella palette Functions»Instrument I/O»Serial, vengono usati anche per la comunicazione su porta parallela. Dovete specificare il nome della risorsa VISA essendo una delle porte LPT. Per esempio, potete utilizzare Measurement & Automation Explorer per stabilire che LPT1 ha un nome di risorsa VISA di ASRL10::INSTR.

LabVIEW Corso Base I

9-30

 National Instruments Corporation


Lezione 9 Controllo della strumentazione

Esercitazione 9-5

VI Serial Write & Read

Obiettivo: Creare un VI che comunichi con un dispositivo RS-232. Completate i passi seguenti per costruire un VI che comunichi con l’NI Instrument Simulator. Per dialogare con un qualsiasi dispositivo esterno attraverso la porta seriale, dovete sapere esattamente come il dispositivo si collega alla porta seriale, quali impostazioni di porta seriale sono supportate ed esattamente come i comandi di stringa e le risposte sono formattati.

NI Instrument Simulator 14. Spegnete l’NI Instrument Simulator e configuratelo per comunicare attraverso la porta seriale impostando i selettori seguenti sul fianco della cassetta.

Le impostazioni dei selettori configurano lo strumento come dispositivo seriale con le seguenti caratteristiche: Ÿ

Baud rate = 9600

Ÿ

Bit dati = 8

Ÿ

Parità = nessuna parità

Ÿ

Bit di stop = 1

Ÿ

Parametri di controllo del flusso = handshake hardware

L’handshake è uno strumento per il controllo del flusso dei dati. L’handshake software comprende caratteri di controllo interni presenti nei dati trasmessi. Per esempio, il controllo di flusso XON/XOFF opera includendo un messaggio trasmesso tra due caratteri di controllo, XON e XOFF. L’handshake hardware utilizza le tensioni sui collegamenti fisici per controllare il flusso dei dati. Le linee RTS e CTS del dispositivo RS-232 sono frequentemente utilizzate per questo scopo. La maggior parte delle apparecchiature di laboratorio utilizza l’handshake hardware. 15. Assicuratevi che l’NI Instrument Simulator sia collegato alla porta seriale sul vostro computer con un cavo seriale. Prendete nota del numero della porta.

 National Instruments Corporation

9-31

LabVIEW Corso Base I


Lezione 9

Controllo della strumentazione

16. Accendete l’NI Instrument Simulator. I LED Power, Ready e Listen sono accesi ad indicare che il dispositivo è in modalità di comunicazione seriale.

Pannello frontale 17. Aprite un nuovo VI e realizzate il pannello frontale seguente.

Schema a blocchi 18. Costruite lo schema a blocchi seguente.

a. Inserite il VI VISA Configure Serial Port che si trova nella palette Functions»Instrument I/O»Serial. Questo VI inizializza la porta seriale sulle stesse impostazioni dell’NI Instrument Simulator. b. Inserite la costante di nuova linea (linefeed) che si trova nella palette Functions»String. L’NI Instrument Simulator richiede una nuova linea alla fine del carattere di stringa. c. Inserite la funzione Concatenate Strings che si trova nella palette Functions»String. Questa funzione combina la stringa da scrivere sulla porta seriale con una nuova linea. d. Inserite la funzione VISA Write che si trova nella palette Functions» Instrument I/O»Serial. Questa funzione scrive la stringa di comando sull’NI Instrument Simulator.

LabVIEW Corso Base I

9-32

 National Instruments Corporation


Lezione 9 Controllo della strumentazione

Nota Se non avete una porta seriale o un NI Instrument Simulator inserite il VI

(demo) VISA Write che si trova nella palette Functions»User Libraries»Basics I Course, per simulare la scrittura di un comando sullo strumento. e. Inserite due funzioni VISA Read che si trovano nella palette Functions» Instrument I/O»Serial. Questa funzione legge la risposta dall’NI Instrument Simulator. Nota Se non avete una porta seriale o un NI Instrument Simulator inserite due

VI (demo) VISA Read che si trovano nella palette Functions»User Libraries»Basics I Course, per simulare la lettura di una stringa dallo strumento. f. Inserite la funzione Scan From String che si trova nella palette Functions» String. L’NI Instrument Simulator dapprima invia sette caratteri che indicano le dimensioni del pacchetto dati che segue. Questa funzione converte i primi sette caratteri in un numero da utilizzare per il conteggio dei byte della seconda funzione VISA Read. g. Inserite il VI Simple Error Handler che si trova nella palette Functions» Time & Dialog. Questo VI visualizza una finestra di dialogo in caso di errore e visualizza le informazioni sull’errore. 19. Salvate il VI come Serial Read & Write.vi. 20. Visualizzate il pannello frontale, digitate ASRL1::INSTR in VISA Resource Name e digitate *IDN? in String to Write. 21. Avviate il VI. L’NI Instrument Simulator fornisce il suo identificativo in String Read. 22. Inviate gli altri comandi all’NI Instrument Simulator, come ad esempio i seguenti: MEAS:DC? ............................................Fornisce una lettura di tensione SOUR:FUNC SIN; SENS:DATA? .......Sinusoide in uscita SOUR:FUNC SQU; SENS:DATA? .......Onda quadra in uscita SOUR:FUNC RAND; SENS:DATA? ....Rumore casuale in uscita SOUR:FUNC PCH; SENS:DATA? .......Disturbo in uscita Attenzione

Il simulatore può impiegare anche diversi secondi per generare le forme d’onda. 23. Chiudete il VI.

Fine dell’esercitazione 9-5

 National Instruments Corporation

9-33

LabVIEW Corso Base I


Lezione 9

Controllo della strumentazione

H. Trasferimento di forme d’onda Molti strumenti forniscono una forma d’onda come stringa ASCII o come stringa binaria. Considerando la stessa forma d’onda, un trasferimento di stringa binaria dovrebbe essere più veloce e richiedere meno memoria rispetto al trasferimento di stringa ASCII. La codifica binaria richiede meno byte rispetto a quella ASCII.

Forme d’onda ASCII Come esempio, considerate una forma d’onda composta da 1024 punti, di cui ognuno possiede un valore tra 0 e 255. Utilizzando una codifica ASCII, avreste bisogno di un massimo di 4 byte per rappresentare ogni punto (un massimo di 3 byte per il valore del punto ed 1 byte come separatore, come la virgola). Avreste bisogno di un massimo di 4096 (4*1024) byte più i byte di intestazione e di coda per rappresentare la forma d’onda come una stringa ASCII. L’esempio seguente è una stringa ASCII di forma d’onda. CURVE

{12,28,63,…1024 punti in totale…,}CR L

Intestazione (6 byte)

Punto dati (fino a 4 byte ciascuno)

Coda (2 byte)

Potete utilizzare il VI Extract Numbers che si trova nella palette Functions»User Libraries»Basics I Course, per convertire una forma d’onda ASCII in una matrice numerica, come segue.

Forme d’onda binarie codificate come interi ad 1 byte La stessa forma d’onda che utilizza la codifica binaria richiede solo 1024 byte (1*1024) più i byte di intestazione e di coda per rappresentare la stringa binaria. Utilizzando la codifica binaria, avete bisogno di un solo byte per rappresentare il punto, assumendo che ogni punto sia un intero a 8 bit senza segno. L’esempio seguente è una stringa binaria di forma d’onda. CURVE % {MSB}{LSB} {Åå,…1024 punti in totale…,}{Chk}CR Intestazione Conteggio (7 byte)

LabVIEW Corso Base I

(4 byte)

Punto dati (fino a 4 byte ciascuno)

9-34

Coda (3 byte)

 National Instruments Corporation


Lezione 9 Controllo della strumentazione

Convertire la stringa binaria in una matrice numerica è un po’ più complesso. Dovete convertire la stringa in una matrice di interi. Potete fare ciò utilizzando la funzione String To Byte Array che si trova nella palette Functions»String»String/Array/Path Conversion. Dovete rimuovere dalla stringa tutte le informazioni di intestazione e di coda prima che la possiate convertire in una matrice. Altrimenti viene convertita anche questa informazione. Stringa di forma d’onda Binaria (senza coda o intestazione)

Matrice numerica

Forme d’onda binarie codificate come interi a 2 byte Se ogni punto nella stringa binaria della forma d’onda è codificata come un intero a 2 byte, è più facile e più rapido utilizzare la funzione Type Cast che si trova nella palette Functions»Advanced»Data Manipulation. Fate riferimento a LabVIEW Basics II Course Manual per ulteriori informazioni sul type casting. Considerate per esempio un oscilloscopio GPIB che trasferisce dati di forma d’onda in notazione binaria. La forma d’onda è composta da 1024 punti dati. Ogni punto dati è un intero a due byte dotato di segno. Quindi, l’intera forma d’onda è composta da 2048 byte. Nell’esempio seguente la forma d’onda ha un’intestazione di 4 byte DATA e una coda di 2 byte – un ritorno a capo seguito da una nuova linea. Intestazione di 4 byte

2 byte di coda

2 byte del primo dato Memoria

Dallo strumento

Lo schema a blocchi seguente mostra come potete utilizzare la funzione Type Cast per trasformare la stringa binaria della forma d’onda in una matrice di interi a 16 bit.

 National Instruments Corporation

9-35

LabVIEW Corso Base I


Lezione 9

Controllo della strumentazione

Potreste aver bisogno di utilizzare la funzione Swap Bytes che si trova nella palette Functions»Advanced»Data Manipulation, per scambiare tra loro gli 8 bit più significativi con quelli meno significativi di ogni elemento. Ricordate che GPIB è un bus a 8 bit. Esso può trasferire solo un byte alla volta. Se lo strumento manda il byte inferiore e quindi quello superiore, non avete bisogno di utilizzare la funzione Swap Bytes. Nell’esempio precedente, dovevate utilizzare la funzione Swap Bytes perché lo strumento ha inviato il byte più significativo per primo. Siccome il byte più significativo viene ricevuto per primo, viene messo in una locazione della memoria più bassa rispetto al byte meno significativo inviato dopo quello più significativo.

LabVIEW Corso Base I

9-36

 National Instruments Corporation


Lezione 9 Controllo della strumentazione

Esercitazione 9-6 Obiettivo:

VI Waveform Example (Opzionale)

Graficare una forma d’onda che uno strumento tipo l’oscilloscopio digitale fornisce come stringa ASCII o binaria. Per la stringa ASCII della forma d’onda, la forma d’onda consiste in 128 punti. Fino a quattro caratteri ASCII separati da virgole rappresentano ciascun punto. L’intestazione seguente precede i punti dati: CURVE {12,28,63,...128 punti in totale...,}CR LF

Per la stringa binaria della forma d’onda, la forma d’onda consiste in 128 punti. Ogni punto viene rappresentato come un intero ad 1 byte senza segno. L’intestazione seguente precede i punti dati: CURVE % {Bin Count MSB}{Bin Count LSB}{åÅ,...128 byte in totale...,}{Checksum} CR LF

Completate i passi seguenti per esaminare un VI che converte la forma d’onda in una matrice di numeri. Il VI grafica la matrice e legge la stringa della forma d’onda dall’NI Instrument Simulator o dalla matrice precedentemente memorizzata.

NI Instrument Simulator 5. Spegnete l’NI Instrument Simulator e configuratelo per comunicare attraverso la porta GPIB impostando i selettori seguenti sul fianco della cassetta.

Queste impostazioni dei selettori configurano lo strumento come dispositivo GPIB con un indirizzo di 2. 6. Accendete l’NI Instrument Simulator. Solo i LED Power e Ready sono accesi ad indicare che l’NI Instrument Simulator si trova in modalità di comunicazione GPIB.

 National Instruments Corporation

9-37

LabVIEW Corso Base I


Lezione 9

Controllo della strumentazione

Pannello frontale 7. Aprite il VI Waveform Example. Il pannello frontale seguente è già costruito.

Waveform String visualizza la stringa della forma d’onda. # of bytes in string visualizza la lunghezza della stringa della forma d’onda. Data Format definisce una forma d’onda ASCII o binaria. Data Source definisce se il dato è simulato o letto dall’NI Instrument Simulator attraverso la GPIB.

Schema a blocchi 8. Esaminate lo schema a blocchi seguente.

LabVIEW Corso Base I

9-38

 National Instruments Corporation


Lezione 9 Controllo della strumentazione

Ÿ

La funzione String Subset che si trova nella palette Functions»String fornisce una sottostringa di 128 elementi che inizia dal quinto byte della stringa binaria della forma d’onda, esclusi i byte di intestazione e di coda.

Ÿ

La funzione String to Byte Array che si trova nella palette Functions»Strng»String/Array/Path Conversion converte la stringa binaria in una matrice di interi senza segno.

Ÿ

La funzione String Lenght che si trova nella palette Functions»String fornisce il numero di caratteri nella stringa della forma d’onda.

Ÿ

Il VI Extract Numbers che si trova nella palette Functions»User Libraries»Basics I Course estrae i numeri dalla stringa ASCII della forma d’onda e li inserisce in una matrice. I caratteri non numerici, come le virgole, separano i numeri nella stringa.

Ÿ

I VI VISA Write e VISA Read che si trovano nella palette Functions»Instrument I/O»VISA richiedono all’NI Instrument Simulator una forma d’onda quadra in formato ASCII o binario a 1 byte.

Ÿ

Il VI Simple Error Handler che si trova nella palette Functions»Time & Dialog riporta gli errori.

9. Visualizzate il pannello frontale ed avviate il VI. La condizione TRUE acquisisce e converte la stringa binaria della forma d’onda in una matrice di numeri. La condizione FALSE acquisisce e converte la stringa ASCII della forma d’onda in una matrice di numeri. 10. Impostate Data Format su ASCII ed avviate il VI. La stringa ASCII della forma d’onda viene visualizzata, il VI converte i valori in una matrice di numeri e visualizza la lunghezza della stringa e la matrice di numeri. 11. Impostate Data Format su Binary ed avviate il VI. La stringa binaria della forma d’onda e la lunghezza della stringa vengono visualizzate, il VI converte la stringa in una matrice di numeri e la visualizza nel grafico. Nota La forma d’onda binaria è simile alla forma d’onda ASCII. Comunque il

numero di byte nella stringa è significativamente più basso. È più efficiente trasferire forme d’onda come stringhe binarie piuttosto che ASCII, perché la codifica binaria richiede meno byte per trasferire la stessa informazione. 12. Chiudete il VI. Non salvate i cambiamenti.

Fine dell’esercitazione 9-6

 National Instruments Corporation

9-39

LabVIEW Corso Base I


Lezione 9

Controllo della strumentazione

Esercitazione 9-7 Obiettivo:

VI Binary Waveform (Opzionale)

Leggere una stringa binaria di forma d’onda a 2 byte da uno strumento GPIB e rappresentare i dati in un grafico. Acquisite una forma d’onda da un oscilloscopio digitale GPIB. L’oscilloscopio invia i dati della forma d’onda con notazione binaria. La forma d’onda è composta da 128 punti di dati. Ogni punto dati è un intero dotato di segno a 2 byte (I16). Quindi l’intera forma d’onda è composta da 256 byte, esclusi i byte di intestazione e di coda. La forma d’onda ha un’intestazione di 5 byte e una coda di 1 byte, un carattere di nuova linea, come mostrato nell’esempio seguente. Intestazione di 5 byte

Carattere di chiusura ad 1 byte

2 byte rappresentativi del primo punto

Costruite un VI che acquisisca una stringa binaria di forma d’onda dall’NI Instrument Simulator, trasferisca i dati in una matrice di numeri a 16 bit e rappresenti la matrice su un grafico. Potete configurare l’NI Instrument Simulator perché fornisca dati di forme d’onda codificati come interi a 2 byte inviando per primo il comando FORM:DATA INT, 16: e richiedendo al simulatore la forma d’onda inviando il comando SENS:DATA?. La forma d’onda contiene un’intestazione di 5 byte e una coda di 1 byte, come mostrato nell’esempio precedente. Salvate il VI come Binary Waveform.vi.

Fine dell’esercitazione 9-7

LabVIEW Corso Base I

9-40

 National Instruments Corporation


Lezione 9 Controllo della strumentazione

Sommario, trucchi e consigli Ÿ

LabVIEW può comunicare con uno strumento che si collega al vostro computer se conoscete che tipo di interfaccia possiede e i cavi necessari.

Ÿ

Utilizzate Measurement & Automation Explorer per configurare e provare schede di interfaccia GPIB, strumenti collegati, porte seriali e porte parallele.

Ÿ

I driver degli strumenti di LabVIEW eliminano la necessità di imparare comandi complessi a basso livello per ogni strumento.

Ÿ

La libreria dei driver degli strumenti di LabVIEW si trova sul CD di LabVIEW. Potete anche scaricare i driver dal sito web della National Instruments all’indirizzo ni.com.

Ÿ

Tutti i driver degli strumenti nella libreria hanno la stessa gerarchia di base dei VI.

Ÿ

Le funzioni VISA sono utilizzate per l’interfaccia I/O per controllare VXI, GPIB, RS-232 e altri tipi di strumenti.

Ÿ

La comunicazione seriale è un modo molto conosciuto di trasmissione dei dati tra un computer e un dispositivo periferico come uno strumento programmabile o anche un altro computer. La libreria seriale di LabVIEW contiene funzioni utilizzate per le operazioni sulla porta seriale.

Ÿ

Gli strumenti possono trasferire dati in molti formati diversi. I dati ASCII possono essere letti facilmente, mentre quelli binari sono più compatti e possono essere in un qualsiasi formato. LabVIEW contiene molti VI e funzioni per convertire dati di forme d’onda in un formato utilizzabile.

 National Instruments Corporation

9-41

LabVIEW Corso Base I


Lezione 9

Controllo della strumentazione

Esercizi aggiuntivi 8-14 Utilizzate il VI NI DEVSIM Getting Started come avete fatto nell’esercitazione 9-2 per provare ed esaminare il driver dello strumento dell’NI Instrument Simulator mentre comunica in modo seriale. 8-15 Aprite il VI Voltage Monitor, che avete realizzato nell’esercitazione 9-3. Modificate lo schema a blocchi affinché i dati siano scritti su un file di foglio elettronico chiamato voltage.txt con il formato seguente.

Salvate il VI come Voltage Data to File.vi.

LabVIEW Corso Base I

9-42

 National Instruments Corporation


Lezione 9 Controllo della strumentazione

Note

ď›™ National Instruments Corporation

9-43

LabVIEW Corso Base I



Lezione 10 Personalizzazione dei VI Questa lezione descrive come configurare l’aspetto e il comportamento dei VI e dell’ambiente di LabVIEW.

Imparerete: XX. configurare l’aspetto del pannello frontale

A

YY. A visualizzare pannelli frontali di subVI quando un VI è in esecuzione ZZ. Ad utilizzare e ad assegnare combinazioni rapide di tasti AAA. modificare VI con le proprietà personalizzate dei VI

A

BBB. personalizzare le palette

A

 National Instruments Corporation

10-1

LabVIEW Corso Base I


Lezione 10

Personalizzazione dei VI

A. Configurazione dell’aspetto dei pannelli frontali Dopo aver realizzato un VI, potete configurare l’aspetto del pannello frontale affinché gli utenti possano operare più facilmente con il VI. Per esempio, potete nascondere la barra del menu e la barra degli strumenti per rimuovere le opzioni che non sono necessarie mentre il VI è in esecuzione. Selezionate File»VI Properties per configurare l’aspetto e il comportamento di un VI. Potete anche cliccare con il tasto destro del mouse sull’icona nell’angolo superiore destro del pannello frontale e selezionare VI Properties dal menu rapido. Non potete accedere alla finestra di dialogo VI Properties mentre un VI è in esecuzione. Fate riferimento a LabVIEW Basics II Course Manual per ulteriori informazioni sulla configurazione del comportamento dei VI. Utilizzate il menu a tendina Category nella parte superiore della finestra di dialogo per scegliere tra diverse categorie di opzioni, tra le quali trovate: Ÿ

General – Visualizza il percorso corrente in cui un VI è salvato, il suo numero di revisione, la storia della revisione e ogni cambiamento effettuato dall’ultimo salvataggio del VI. Potete anche utilizzare questa pagina per modificare un’icona.

Ÿ

Documentation – Utilizzate questa pagina per aggiungere una descrizione del VI e collegarlo ad un argomento del file di help. Fate riferimento all’esercitazione 3-2 per ulteriori informazioni sulla documentazione dei VI.

Ÿ

Security – Utilizzate questa pagina per bloccare o proteggere con password un VI.

Ÿ

Window Appearance – Utilizzate questa pagina per configurare diverse impostazioni della finestra.

Ÿ

Window Size – Utilizzate questa pagina per impostare le dimensioni della finestra.

Ÿ

Execution – Utilizzate questa pagina per configurare come eseguire il VI.

Aspetto delle finestre Nella finestra di dialogo VI Properties, selezionate Window Appearance dal menu a tendina Category per configurare diverse impostazioni della finestra del VI mentre è in esecuzione. Di default il titolo della finestra del VI è lo stesso del nome del VI. Potete personalizzare il titolo della finestra del VI per renderlo più descrittivo del nome del file. Questo è utile per VI utilizzati in paesi diversi per cui il titolo della finestra può essere tradotto nella lingua locale. Per cambiare il

LabVIEW Corso Base I

10-2

 National Instruments Corporation


Lezione 10 Personalizzazione dei VI

titolo della finestra del VI, rimuovete il contrassegno dal riquadro di scelta Same as VI Name e digitate un titolo per il VI nella casella per l'immissione del testo Window Title. Per configurare l’aspetto della finestra, selezionate uno dei seguenti stili della finestra. Una rappresentazione grafica di ogni stile viene visualizzata sulla destra quando scegliete uno stile. Ÿ

Top-level Application Window – Mostra la barra del titolo e del menu, nasconde le barre di scorrimento e la barra degli strumenti, consente all’utente di chiudere la finestra, consente l’uso dei menu rapidi, non consente il ridimensionamento e mostra il pannello frontale quando viene chiamato.

Ÿ

Dialog – Il VI funziona come una finestra di dialogo nel sistema operativo, per cui l’utente non può interagire con altre finestre di LabVIEW mentre questa finestra del VI è aperta. Questa opzione non vi impedisce di avere finestre di altre applicazioni in primo piano. (UNIX) Non potete far comparire in primo piano altre finestre. Lasciare la finestra di dialogo dello stile in alto, non avere barre dei menu, barre di scorrimento o degli strumenti consente all’utente di chiudere la finestra ma non di ridimensionarla, consente l’uso dei menu rapidi e mostra il pannello frontale quando viene chiamato. Inoltre se un parametro booleano del pannello frontale viene associato ai tasti <Enter> o <Return>, LabVIEW evidenzia il parametro con un bordo scuro.

Ÿ

Default – Stessi stili di finestra utilizzati nell’ambiente di sviluppo di LabVIEW.

Ÿ

Custom – Cliccate sul pulsante Customize per definire uno stile di finestra personalizzato.

Dimensioni delle finestre Nella finestra di dialogo VI Properties, selezionate Window Size dal menu a tendina Category per configurare le dimensioni della finestra e degli oggetti del pannello frontale. Questa pagina comprende: Ÿ

Minimum Panel Size – Imposta le dimensioni minime del pannello frontale. Se consentite all’utente di ridimensionare la finestra nelle opzioni Window Appearance, l’utente non può rendere il pannello frontale più piccolo delle dimensioni impostate in questa pagina.

Ÿ

Size the Front Panel to the Width and Height of the Entire Screen – Ridimensiona automaticamente la finestra del pannello frontale per adattarsi allo schermo quando avviate il VI. Il VI non mantiene le informazioni sulle sue dimensioni e posizione originale, e quindi rimane nella nuova posizione se tornate alla modalità di modifica.

Ÿ

Maintain Proportions of Window for Different Monitor Resolutions – Ridimensiona la finestra del pannello frontale per occupare approssimativamente lo stesso spazio nello schermo quando

 National Instruments Corporation

10-3

LabVIEW Corso Base I


Lezione 10

Personalizzazione dei VI

si adottano risoluzioni dello schermo diverse. Per esempio, se sviluppate un VI su un computer con risoluzione dello schermo 1024 x 768 potreste aver bisogno di eseguirlo su un computer con risoluzione 800 x 600. Ÿ

LabVIEW Corso Base I

Scale All Objects on Panel as the Window Resizes – Ridimensiona automaticamente tutti gli oggetti del pannello frontale rispettando le proporzioni con le dimensioni della finestra del pannello frontale. Il testo non viene ridimensionato, perché le dimensioni dei font sono fissate. Utilizzate questa opzione quando consentite all’utente di ridimensionare la finestra del pannello frontale.

10-4

 National Instruments Corporation


Lezione 10 Personalizzazione dei VI

B. Apertura dei pannelli frontali dei subVI con VI in esecuzione Un singolo pannello frontale talvolta è troppo riduttivo per rappresentare numerose opzioni o schermate. Per risolvere questo problema, organizzate i vostri VI affinché i VI principali presentino opzioni ad alto livello e i subVI presentino le relative opzioni. Consiglio

Potete anche utilizzare i controlli tab per rendere il vostro pannello frontale più organizzato. Quando LabVIEW chiama un subVI, di solito il sub VI viene eseguito senza che venga aperto il suo pannello frontale. Se volete che il pannello frontale del subVI venga aperto solo una volta quando richiamato, utilizzate la finestra di dialogo SubVI Node Setup. Se volete invece che il pannello frontale del subVI venga aperto ogni volta che viene richiamato, utilizzate la finestra di dialogo VI Properties.

Apertura singola Cliccate con il tasto destro del mouse sul subVI e selezionate SubVI Node Setup dal menu rapido per visualizzare la finestra di dialogo SubVI Node Setup. Contrassegnate nei riquadri di scelta Show Front Panel when called e Close afterwards if originally closed per aprire il pannello frontale del subVI quando viene richiamato. Questa finestra di dialogo comprende anche: Ÿ

Open Front Panel when loaded – Visualizza il pannello frontale quando viene caricato il subVI o quando viene caricato il VI che lo richiama.

Ÿ

Open Front Panel when called – Visualizza il pannello frontale quando viene chiamato il subVI.

Ÿ

Close afterwards if originally closed – Se Show Front Panel when called è stato prescelto e se il subVI è stato chiuso precedentemente, il pannello frontale si chiude dopo l’esecuzione del subVI.

Ÿ

Suspend when called – Sospende un subVI quando viene chiamato e aspetta un’interazione con l’utente. Questa opzione è la stessa che si ottiene selezionando Operate»Suspend when Called.

Aperture ripetute Aprite il subVI e selezionate File»VI Properties. Selezionate Window Appearance dal menu a tendina Category, cliccate sul pulsante Customize e contrassegnate i riquadri di scelta in Show Front Panel When Called e Close Afterwards If Originally Closed.

 National Instruments Corporation

10-5

LabVIEW Corso Base I


Lezione 10

Personalizzazione dei VI

Esercitazione 10-1 VI Use Pop-Up Graph e VI Pop-Up Graph Obiettivo: Visualizzare un pannello frontale di un subVI mentre un VI è in esecuzione.

Completate i passi seguenti per realizzare un VI che acquisisca la temperatura una volta ogni 0.5 s per 10 s, visualizzi il pannello frontale di un subVI che mostri i dati acquisiti in un grafico e tenga il pannello frontale aperto finché premete un pulsante.

Pannello frontale 115.

Aprite

un nuovo VI e costruite il pannello frontale seguente. a. Cliccate con il tasto destro del mouse sul termometro e selezionate Visible Items»Digital Display dal menu rapido per visualizzare il valore digitale. b. Portate # of data values su una rappresentazione I32.

Schema a blocchi 116.

Costr

uite lo schema a blocchi seguente. a. Inserite un Ciclo For che si trova nella palette Functions»Structures. Il Ciclo For provoca la ripetizione di 20 misure da parte del VI. b. Inserite il VI Thermometer, che avete realizzato nell’esercitazione 3-2. Questo VI acquisisce il valore corrente di temperatura.

LabVIEW Corso Base I

10-6

 National Instruments Corporation


Lezione 10 Personalizzazione dei VI

c. Inserite la funzione Wait Until Next ms Multiple che si trova nella palette Functions»Time & Dialog. Questa funzione causa l’esecuzione del Ciclo For ogni 500 ms.

 National Instruments Corporation

10-7

LabVIEW Corso Base I


Lezione 10

Personalizzazione dei VI

d. Inserite la funzione Multiply che si trova nella palette Functions»Numeric. Questa funzione moltiplica ogni elemento della matrice di uscita per 0.5 per scalare i valori della x per rappresentare l’intervallo temporale in cui il VI effettua le misure. e. Inserite il VI Pop-Up Graph, che è già stato realizzato. Questo VI rappresenta i dati di temperatura su un grafico XY. 117. e il VI come Use Pop-Up Graph.vi.

Salvat

118. Confi gurate il subVI per visualizzare il suo pannello frontale quando richiamato. a. Cliccate due volte sul subVI Pop-Up Graph per aprire il suo pannello frontale. b. Selezionate File»VI Properties. c. Selezionate Window Appearance dal menu a tendina Category. d. Cliccate sul pulsante Customize. Configurate l’aspetto della finestra come mostrato nella finestra di dialogo seguente.

e. Cliccate sul pulsante OK due volte e salvate e chiudete il subVI. Se il pannello frontale non è chiuso, non si chiuderà quando il subVI è in esecuzione. 119. te il VI Use Pop-Up Graph.

Avvia

Dopo che il VI ha acquisito 10 s di dati di temperatura, il pannello frontale del VI Pop-Up Graph visualizza e rappresenta i dati di temperatura. Cliccate sul pulsante DONE per tornare al VI chiamante. 120. Camb iate le impostazioni sull’aspetto della finestra per il subVI Pop-Up Graph sullo stile di finestra Dialog.

LabVIEW Corso Base I

10-8

 National Instruments Corporation


Lezione 10 Personalizzazione dei VI

121. e e chiudete il subVI.

ď›™ National Instruments Corporation

Salvat

10-9

LabVIEW Corso Base I


Lezione 10

Personalizzazione dei VI

122. Avvia te nuovamente il VI Use Pop-Up Graph. La finestra del pannello frontale del subVI Pop-Up Graph funziona come una finestra di dialogo. Per esempio, la finestra rimane sopra tutte le altre finestre ed utilizza il colore del sistema. 123. ete tutti i VI aperti.

Chiud

Fine dell’esercitazione 10-1

LabVIEW Corso Base I

10-10

ď›™ National Instruments Corporation


Lezione 10 Personalizzazione dei VI

C. Tasti rapidi per i controlli Mentre un VI è in esecuzione, potete premere il tasto <Tab> per modificare l’azione del tasto da un controllo al successivo. L’azione del tasto è la stessa se avete cliccato sul controllo. Mentre un controllo ha la sua corrispondenza con l’azione del tasto, dovete utilizzare la tastiera per inserire il valore del controllo. Se il controllo è un testo o un controllo digitale, LabVIEW evidenzia il valore nel controllo quando il controllo ha il suo tasto funzione. Se un controllo Booleano ha il suo tasto funzione, premete la barra spaziatrice o il tasto <Enter> per cambiare il suo valore. Potete anche assegnare combinazioni rapide di tasti per i controllo così gli utenti possono navigare sul pannello frontale premendo altri tasti. Cliccate con il tasto destro del mouse sul controllo e selezionate Advanced»Key Navigation dal menu rapido per visualizzare la finestra di dialogo Key Navigation. Nota

La voce di menu rapida Advanced»Key Navigation è sfocata per gli indicatori perché non potete inserire dati in un indicatore. Selezionate la combinazione rapida di tasti che volete assegnare al controllo nella sezione Key Assignment. I nomi dei controlli del pannello frontale che appaiono nell’elenco Current Assignments corrispondono alle etichette di quei controlli. Per evitare che gli utenti accedano ad un controllo premendo il tasto <Tab> mentre il VI è in esecuzione, contrassegnate il riquadro di scelta Skip this control when tabbing.

 National Instruments Corporation

10-11

LabVIEW Corso Base I


Lezione 10

Personalizzazione dei VI

Esercitazione 10-2 Obiettivo:

VI Temperature System

Impostare combinazioni rapide di tasti per i controlli del pannello frontale e visualizzare un pannello frontale di un subVI mentre un VI è in esecuzione. Completate i passi seguenti per realizzare un sistema di monitoraggio della temperatura che potete utilizzare per visualizzare tre prove differenti su richiesta.

Pannello frontale 52. Aprite il VI Temperature System. Il pannello frontale seguente è già realizzato.

Il pannello frontale contiene quattro pulsanti booleani. L’azione meccanica dei primi tre pulsanti è Latch When Pressed e per il pulsante STOP è Latch When Released. 53. Cliccate con il tasto destro del mouse su un controllo e selezionate Advanced»Key Navigation dal menu rapido per visualizzare la finestra di dialogo Key Navigation. 54. Nella sezione Key Assignment, assegnate la combinazione rapida di tasti mostrata nel pannello frontale precedente. 55. Ripetete i passi 2 e 3 per ogni controllo.

Schema a blocchi 56. Costruite lo schema a blocchi seguente, lasciando tutte le condizioni FALSE vuote.

LabVIEW Corso Base I

10-12

 National Instruments Corporation


Lezione 10 Personalizzazione dei VI

a. Inserite un Ciclo While e tre strutture Case che si trovano nella nella palette Functions»Structures. b. Inserite il VI Display Temp che si trova nella palette Functions»User Libraries»Basics I Course. Questo VI simula una misura di temperatura ogni 500 ms e la rappresenta su un grafico tipo strip. c. Inserite il VI Display and Log Temp che si trova nella palette Functions»User Libraries»Basics I Course. Questo VI simula una misura di temperatura ogni 500 ms, la rappresenta su un grafico tipo strip e la memorizza su un file. d. Inserite il VI Display Logged Temp che si trova nella palette Functions»User Libraries»Basics I Course. Questo VI apre un file che avete scelto, legge i dati memorizzati e li visualizza su un grafico. e. Inserite la funzione Wait Until Next ms Multiple che si trova nella palette Functions»Time & Dialog. Questa funzione determina l’esecuzione del Ciclo While ogni 100 ms. 57. Cliccate due volte sull’icona di ogni subVI per aprirne il pannello frontale, esaminate lo schema a blocchi e chiudete il subVI. 58. Configurate ogni subVI affinché visualizzi il proprio pannello frontale quando richiamato. a. Cliccate con il tasto destro del mouse sul subVI e selezionate SubVI Node Setup dal menu rapido. b. Contrassegnate i riquadri di scelta di Show Front Panel when called e Close afterwards if originally closed. c. Ripetete i passi a e b per i due subVI rimanenti. 59. Salvate il VI. 60. Visualizzate il pannello frontale ed avviate il VI. 61. Cliccate su ogni pulsante e premete le combinazioni rapide di tasti corrispondenti. Nota

I tre subVI forniscono il pannello frontale del VI Temperature System quando premete il tasto <Enter>. Provate a premere il tasto <Enter> per fare così. 62. Fermate il VI. 63. Configurate il VI Temperature automaticamente quando aprite il VI.

System

affinché

parta

a. Selezionate File»VI Properties. b. Selezionate Execution dal menu a tendina Category. c. Contrassegnate il riquadro di scelta Run When Opened.

 National Instruments Corporation

10-13

LabVIEW Corso Base I


Lezione 10

Personalizzazione dei VI

64. Configurate il VI affinché la barra del menu e degli strumenti non siano visibili mentre il VI è in esecuzione. a. Selezionate Window Appearance dal menu a tendina Category. b. Cliccate sul pulsante Customize. c. Rimuovete i contrassegni dai riquadri di scelta di Show Menu Bar e Show Toolbar When Running. d. Cliccate sul pulsante OK due volte. 65. Salvate e chiudete tutti i VI. 66. Aprite nuovamente il VI Temperature System. Il VI si avvia automaticamente quando lo aprite. 67. Cliccate sui pulsanti del pannello frontale o utilizzate le combinazioni rapide dei tasti. 68. Fermate e chiudete tutti i VI.

Fine dell’esercitazione 10-2

LabVIEW Corso Base I

10-14

 National Instruments Corporation


Lezione 10 Personalizzazione dei VI

D. Modifica delle proprietà dei VI (Opzionale) Talvolta potete scegliere le proprietà dei VI che rendono difficile la modifica di un VI. Per esempio, voi potreste scegliere l’opzione Run When Opened e disabilitare la barra del menu e degli strumenti. Se impostate il VI in maniera tale che si chiuda e si esca da LabVIEW dopo l’esecuzione, non potete fermare il VI e modificarlo senza chiudere ed uscire da LabVIEW. Questo renderebbe molto difficile modificare il VI. Nota

Potete usare la funzione Quit LabVIEW che si trova nella palette Functions»Application Control, per uscire da LabVIEW. Questa funzione arresta tutti i VI in esecuzione e fa terminare la sessione corrente di LabVIEW. La funzione ha un ingresso e se esso è collegato, la fine della sessione di LabVIEW avviene solo se questo ingresso è TRUE. Se l’ingresso non è collegato, la fine della sessione avviene quando viene eseguito il nodo. Prima di cambiare le proprietà del VI, salvate una copia del VI in una nuova posizione per evitare situazioni come quella dell’esempio precedente selezionando File»Save with Options. Selezionate l’opzione Development Distribution per salvare il VI in una nuova posizione con tutta la sua gerarchia. Potete anche includere i file vi.lib nel salvataggio. Dopo aver salvato una copia del VI, modificate le proprietà del VI originale. Se incontrate problemi, potete ritornare alla copia del VI. Nota Se selezionate l’opzione Remove diagrams, rimuovete il codice sorgente

del VI. Selezionate questa opzione solo se non avete più bisogno di modificare nuovamente il VI. Prima di salvare un VI senza schema a blocchi, salvate una copia del VI con gli schemi a blocchi. Se avete già salvato un VI di sviluppo con le proprietà che rendono il VI difficile da modificare, fate riferimento all’esercitazione 10-3 per ulteriori informazioni sulla modifica di VI.

 National Instruments Corporation

10-15

LabVIEW Corso Base I


Lezione 10

Personalizzazione dei VI

Esercitazione 10-3

VI Edit Me (Opzionale)

Obiettivo: Modificare un VI con proprietà che rendono difficile modificarlo. Completate i passi seguenti per modificare un VI che sia configurato per avviarsi quando aperto e faccia uscire da LabVIEW dopo l’esecuzione.

Pannello frontale 19. Chiudete i VI aperti e aprite il VI Edit Me. Il pannello frontale seguente è già costruito.

Il VI è già in esecuzione quando viene aperto. Mentre il VI è in esecuzione, non potete utilizzare la barra dei menu, la barra degli strumenti o le combinazioni rapide di tasti per modificare o bloccare il VI. 20. Cliccate sul pulsante Start. Dopo 10 secondi, il VI arresta l’esecuzione ed esce da LabVIEW. 21. Riavviate LabVIEW e aprite un nuovo VI. 22. Se il VI che volete modificare non ha subVI o non sapete che cosa contiene, completate i passi da 5 a 13. Comunque, se il VI che volete modificare possiede subVI, apritene uno e modificate lo schema a blocchi per spezzare il subVI. Per esempio, inserite una funzione Add nello schema a blocchi e non collegate gli ingressi. Aprite il VI che volete modificare. Siccome il suo subVI non è eseguibile, anche il VI chiamante non è eseguibile. Si apre in modalità di modifica e il pulsante Run appare spezzato. Assicuratevi di riparare il subVI dopo aver modificato il VI chiamante. 23. Visualizzate lo schema a blocchi del nuovo VI. 24. Inserite nello schema a blocchi il VI Edit Me, che è già costruito. Compare il pannello frontale del VI Edit Me. Sebbene possiate visualizzare lo schema a blocchi del VI Edit Me, non potete modificarlo. 25. Selezionate Operate»Change to Edit Mode. Una finestra di dialogo vi informa che il VI è bloccato. 26. Cliccate sul pulsante Unlock. Ora potete modificare il VI. Potete anche sbloccare un VI selezionando File»VI Properties e selezionando Security dal menu a tendina Category.

LabVIEW Corso Base I

10-16

 National Instruments Corporation


Lezione 10 Personalizzazione dei VI

27. Selezionate e cancellate la funzione Quit LabVIEW dallo schema a blocchi. 28. Salvate e chiudete il VI Edit Me. Chiudete il nuovo VI e non salvate le modifiche. 29. Aprite nuovamente il VI Edit Me. 30. Dopo che il VI si è avviato, provate a modificarlo. 31. Chiudete il VI Edit Me.

Fine dell’esercitazione 10-3

 National Instruments Corporation

10-17

LabVIEW Corso Base I


Lezione 10

Personalizzazione dei VI

E. Personalizzazione delle palette Controls e Functions (opzionale) Potete personalizzare le palette Controls e Functions per aggiungere VI e controlli alle palette, nascondere VI e funzioni o risistemare le palette interne per rendere i VI e le funzioni che utilizzate frequentemente più accessibili.

Aggiunta di VI e Controlli alla User Library e alla Instrument Library Il metodo più semplice per aggiungere VI e controlli alle palette Controls e Functions è di salvarli nella directory user.lib. Quando riavviate LabVIEW, le palette Functions»User Libraries e Controls»User Controls contengono subpalette per ogni directory, librerie di VI (.llb), o file menu (.mnu) in user.lib e icone per ogni file in user.lib. LabVIEW aggiorna automaticamente le palette quando aggiungete o rimuovete file da directory specifiche. Per esempio, Functions»User Libraries contiene la subpalette Basics I Course per il file lvbasics.llb in user.lib. La palette Functions»Instrument I/O corrisponde alla directory instr.lib. Salvate i driver degli strumenti in questa directory per renderla facilmente accessibile sulla palette Functions. Quando aggiungete VI o controlli alle palette Controls e Functions utilizzando questo metodo, non potete determinare la posizione esatta dei VI o dei controlli sulle palette.

Creazione e modifica delle forme delle palette Per controllare la posizione esatta dei VI e dei controlli che aggiungete alle palette Controls e Functions, dovete creare una forma della palette. LabVIEW comprende quattro forme di palette di default – default, basic, data acquisition e test & measurement. Per passare ad un’altra forma di palette, cliccate sul pulsante Options nella barra degli strumenti delle palette Controls e Functions per visualizzare la finestra di dialogo Function Browser Options. Selezionate una forma dal menu a tendina Palette Set. Potete anche passare da una palette ad icona ad una solo testo scegliendo questa opzione dal menu a tendina Format. Per modificare la forma di una palette esistente, cliccate sul pulsante Edit Palettes. Nella finestra di dialogo Edit Control and Function Palettes che appare, scegliete una forma della palette dal menu a tendina Palette Set. Cancellate, personalizzate o inserite oggetti cliccando con il tasto destro del mouse su una palette o su un oggetto di una subpalette e selezionando

LabVIEW Corso Base I

10-18

 National Instruments Corporation


Lezione 10 Personalizzazione dei VI

un’opzione dal menu rapido. Potete anche risistemare il contenuto delle palette premendo il tasto <Shift> mentre trascinate oggetti in nuove posizioni. Per aggiungere una nuova riga o colonna, cliccate con il tasto destro del mouse sullo spazio del bordo destro o in basso della subpalette. LabVIEW memorizza le informazioni sulle palette Controls e Functions nella directory labview\menus. Quando create una nuova forma di palette, LabVIEW copia la palette originale interna nella directory labview\menus prima che voi effettuiate dei cambiamenti. La protezione delle palette interne assicura che voi possiate fare esperienza con le palette senza rovinare le forme originali. Fate riferimento a LabVIEW User Manual per ulteriori informazioni sulle forme delle palette. Per inserire una nuova subpalette vuota nelle palette Controls e Functions o collegarla ad una palette esistente, cliccate con il tasto destro del mouse sulla palette e selezionate Insert»Submenu dal menu rapido. Nella finestra di dialogo Insert Submenu che appare, sono disponibili le opzioni seguenti. Selezionando una delle tre ultime opzioni anche in modo ricorsivo si creano subpalette per ogni sottodirectory, librerie di VI o file .mnu nella directory. Queste palette si aggiornano automaticamente se aggiungete o rimuovete file dalle directory che avete scelto. Ÿ

Create a new menu file (.mnu) – Inserisce una nuova palette vuota. Quando viene richiesto un nome per la palette ed un file per contenerla, aggiungete un’estensione .mnu al file per indicare che è un menu o una palette.

Ÿ

Link to an existing menu file (.mnu) – Aggiunge una palette esistente (.mnu). Utilizzate questa opzione per creare una palette con ingressi per tutti i file nella directory.

Ÿ

Link to a library (.llb) – Collega alle librerie di VI.

Ÿ

Link to a directory – Crea una palette con ingressi per tutti i file in una directory.

 National Instruments Corporation

10-19

LabVIEW Corso Base I


Lezione 10

Personalizzazione dei VI

Esercitazione 10-4

Forme di palette (opzionale)

Obiettivo: Creare una nuova forma di palette e modificare la palette Functions. Completate i passi seguenti per creare una nuova forma di palette e modificare la palette Functions per includere i VI in exercises\LV Basics I. 7. Aprite un nuovo VI. 8. Visualizzate le palette Controls e Functions e cliccate sul pulsante Options nella barra degli strumenti della palette. 9. Cliccate sul pulsante Edit Palettes per visualizzare la finestra di dialogo Edit Controls and Functions Palettes. 10. Selezionate new setup dal menu a tendina Palette Set. 11. Digitate LabVIEW Course nella finestra di dialogo che appare e cliccate sul pulsante OK. 12. Cliccate con il tasto destro del mouse sulla palette Functions e selezionate Insert»Submenu dal menu rapido per visualizzare la finestra di dialogo Insert Submenu. 13. Selezionate Link to a directory e cliccate sul pulsante OK. Una finestra di dialogo visualizza il contenuto della directory LabVIEW Course. 14. Selezionate la directory da associare con il sottomenu o la subpalette, exercises\LV Basics I. LabVIEW crea una subpalette per il contenuto della directory LV Basics I e usa l’icona di default. 15. Cliccate sulla nuova subpalette LV Basics I. 16. Cancellate le icone blank e risistemate le icone cliccando con il tasto destro del mouse sulle icone e selezionando le opzioni dal menu rapido. Potete anche premere il tasto <Shift> mentre trascinate gli oggetti per risistemarli. 17. Cliccate sul pulsante Save Changes nella finestra di dialogo Edit Controls and Functions Palettes. 18. Visualizzate lo schema a blocchi e selezionate la palette Functions»LV Basics I. 19. Cliccate nuovamente sul pulsante Option e spostatevi tra le forme di palette selezionandole dal menu a tendina Palette Set. 20. Tornate indietro alla forma di default.

Fine dell’esercitazione 10-4

LabVIEW Corso Base I

10-20

 National Instruments Corporation


Lezione 10 Personalizzazione dei VI

Sommario, trucchi e consigli Ÿ

Selezionate File»VI Properties per configurare l’aspetto e il comportamento di un VI. Potete anche cliccare con il tasto destro del mouse sull’icona nell’angolo superiore destro del pannello frontale e selezionare VI Properties dal menu rapido.

Ÿ

Se volete che il subVI apra una sola volta il pannello frontale quando viene chiamato, cliccate con il tasto destro del mouse sul subVI e selezionate SubVI Node Setup dal menu rapido. Contrassegnate i riquadri di scelta su Show Front Panel when called e Close afterwards if originally closed.

Ÿ

Se volete che il subVI apra ogni volta che viene chiamato il pannello frontale, selezionate File»VI Properties e selezionate Window Appearance dal menu a tendina Category. Cliccate sul pulsante Customize e contrassegnate i riquadri di scelta in Show Front Panel When Called e Close Afterwards if Originally Closed.

Ÿ

Assegnate combinazioni rapide di tasti ai controlli cliccando con il tasto destro del mouse sul controllo e selezionando Advanced»Key Navigation dal menu rapido.

Ÿ

Prima di cambiare le proprietà dei VI, salvate una copia del VI in una nuova posizione per evitare di rendere il VI difficile da modificare selezionando File»Save with Options.

Ÿ

Per modificare un VI con le proprietà che ne rendono difficile le modifiche: − Spezzate uno dei suoi subVI. Il VI si apre in modalità modifica, perché non può andare in esecuzione con un subVI rotto. − Se il VI non ha subVI, inseritelo nello schema a blocchi di un nuovo VI.

Ÿ

Il metodo più semplice per aggiungere VI e controlli alle palette Controls e Functions è di salvarli nella directory user.lib.

Ÿ

Per passare ad un’altra forma di palette, cliccate sul pulsante Options nella barra degli strumenti delle palette Controls o Functions per visualizzare la finestra di dialogo Function Browser Options. Selezionate una vista dal menu a tendina Palette Set.

Ÿ

Passate da una palette ad icone ad una solo testo e viceversa, selezionandola dal menu a tendina Format.

Ÿ

Per inserire una nuova subpalette vuota nelle palette Controls o Functions o collegarla ad una palette esistente, cliccate con il tasto destro del mouse sulla palette e selezionate Insert»Submenu dal menu rapido.

 National Instruments Corporation

10-21

LabVIEW Corso Base I


Lezione 10

Personalizzazione dei VI

Note

LabVIEW Corso Base I

10-22

ď›™ National Instruments Corporation


Appendice Questa appendice contiene informazioni aggiuntive su LabVIEW.

A. Informazioni aggiuntive Questa sezione descrive come potete avere ulteriori informazioni relativamente a LabVIEW, ai driver degli strumenti e ad altri argomenti relativi a questo corso.

Opzioni del supporto tecnico della National Instruments Il modo migliore per ottenere un supporto tecnico e altre informazioni su LabVIEW, prove e misure, strumentazione e altri prodotti e servizi della National Instruments è di collegarsi al sito web della NI che si trova all’indirizzo ni.com. La pagina di supporto del sito web della National Instruments contiene collegamenti a note applicative, la conoscenza di base del supporto, centinaia di esempi e vari tipi di aiuto per la risoluzione di problemi relativi ad argomenti discussi in questo corso ed altro ancora. Un altro eccellente posto per ottenere supporto quando sviluppate varie applicazioni con i prodotti della National Instruments è la NI Developer Zone sempre all’indirizzo ni.com. La NI Developer Zone comprende anche collegamenti diretti alla rete di driver per gli strumenti e alle pagine web dei membri dell’Alliance Program.

L’Alliance Program L’Alliance Program della National Instruments riunisce integratori di sistemi, consulenti e venditori hardware per fornire servizi completi e esperienza ai clienti. Il programma assicura assistenza qualificata e specializzata per lo sviluppo di applicazioni e di sistemi. Le informazioni relative e i collegamenti a molti dei membri dell’Alliance Program sono disponibili presso il sito della National Instruments.

 National Instruments Corporation

A-1

LabVIEW Corso Base I


Appendice

Newsgroup di supporto all’utente I newsgroup di supporto all’utente della National Instruments sono una raccolta di newsgroup Usenet che copre i prodotti della National Instruments e i campi generali della scienza e dell’ingegneria. Potete leggere, cercare e scrivere sui newsgroup per condividere soluzioni e trovare un supporto aggiuntivo da altri utenti. Potete accedere ai newsgroup di supporto all’utente dalla pagina web di supporto della National Instruments.

Altri corsi di formazione della National Instruments. National Instruments offre diversi corsi di formazione per gli utenti di LabVIEW. I corsi sono elencati nel catalogo della National Instruments e online all’indirizzo ni.com/custed. Questi corsi continuano la formazione che avete ricevuto qui e la espandono in altre aree. Potete acquistare il materiale dei corsi o iscrivervi ad un corso con istruttore contattando la National Instruments.

Pubblicazioni di LabVIEW Newsletter LabVIEW Technical Resource (LTR) Iscrivetevi al LabVIEW Technical Resource per scoprire consigli e tecniche potenti per lo sviluppo di applicazioni in LabVIEW. Questa pubblicazione trimestrale offre informazioni tecniche dettagliate per nuovi utenti e per utenti avanzati. Inoltre, ogni numero contiene un dischetto di VI e utility di LabVIEW che implementano metodi trattati nel numero. Per ordinare LabVIEW Technical Resource, chiamate la redazione di LTR al numero (214) 706-0587 o visitate il sito www.ltrpub.com.

Libri di LabVIEW Sono stati scritti molti libri sulla programmazione e sulle applicazioni in LabVIEW. Il sito web della National Instruments contiene un elenco di tutti i libri su LabVIEW e i collegamenti a siti per l’acquisto di questi libri. Sono anche comprese informazioni sull’editore così potete contattare direttamente l’editore per ulteriori informazioni sul contenuto e sull’ordinazione di libri su LabVIEW, di automazione e su misure basate su PC.

Listserve info-labview Info-labview è un e-mail group di utenti di tutto il mondo che

discutono su LabVIEW. Gli appartenenti a questa lista possono rispondere a domande sulla realizzazione di sistemi LabVIEW per applicazioni particolari, su dove trovare i driver degli strumenti o l’help per un dispositivo e su problemi che si presentano.

LabVIEW Corso Base I

A-2

 National Instruments Corporation


Appendice

Inviate un messaggio di sottoscrizione a info-labview all’indirizzo listmanager@pica.army.mil. Inviate altri messaggi amministrativi al responsabile dell’elenco infolabview a: info-labview-REQUEST@pica.army.mil

Inviate un messaggio agli iscritti a: info-labview@pica.army.mil

Potete anche ricercare tra archivi ftp all’indirizzo: ftp://ftp.pica.army.mil/pub/labview/

Gli archivi contengono diversi VI, messi a disposizione per l’esecuzione di una grande varietà di compiti.

 National Instruments Corporation

A-3

LabVIEW Corso Base I


Appendice

B. Tabella delle corrispondenze dei caratteri ASCII La tabella seguente contiene i codici dei caratteri ASCII e quelli equivalenti nel sistema esadecimale, ottale e decimale. Hex

Ottale

Decimale

ASCII

Hex

Ottale

Decimale

ASCII

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19

000 001 002 003 004 005 006 007 010 011 012 013 014 015 016 017 020 021 022 023 024 025 026 027 030 031

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM

20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36 37 38 39

040 041 042 043 044 045 046 047 050 051 052 053 054 055 056 057 060 061 062 063 064 065 066 067 070 071

32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57

SP ! “ # $ % & ‘ ( ) * + , . / 0 1 2 3 4 5 6 7 8 9

LabVIEW Corso Base I

A-4

 National Instruments Corporation


Appendice

Hex

Ottale

Decimale

ASCII

Hex

Ottale

Decimale

ASCII

1A 1B 1C 1D 1E 1F 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 51 52 53 54 55 56

032 033 034 035 036 037 100 101 102 103 104 105 106 107 110 111 112 113 114 115 116 117 120 121 122 123 124 125 126

26 27 28 29 30 31 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86

SUB ESC FS GS RS US @ A B C D E F G H I J K L M N O P Q R S T U V

3A 3B 3C 3D 3E 3F 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76

072 073 074 075 076 077 140 141 142 143 144 145 146 147 150 151 152 153 154 155 156 157 160 161 162 163 164 165 166

58 59 60 61 62 63 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118

: ; < = > ? ` a b c d e f g h i j k l m n o p q r s t u v

ď›™ National Instruments Corporation

A-5

LabVIEW Corso Base I


Appendice

Hex

Ottale

Decimale

ASCII

Hex

Ottale

Decimale

ASCII

57 58 59 5A 5B 5C 5D 5E 5F

127 130 131 132 133 134 135 136 137

87 88 89 90 91 92 93 94 95

W X Y Z [ \ ] ^ _

77 78 79 7A 7B 7C 7D 7E 7F

167 170 171 172 173 174 175 176 177

119 120 121 122 123 124 125 126 127

w x y z { | } ~ DEL

LabVIEW Corso Base I

A-6

ď›™ National Instruments Corporation


Appendice

C. Note per il docente 1. Assicuratevi che ogni stazione abbia in dotazione: Ÿ

LabVIEW Corso Base I

Ÿ

LabVIEW Professional Deveopment System 6.0 o successive

Ÿ

Dispositivo DAQ multifunzione configurato come Board ID 1

Ÿ

DAQ Signal Accessory e cavo per collegare il dispositivo DAQ a DAQ Signal Accessory

Ÿ

Interfaccia GPIB

Ÿ

NI Instrument Simulator, alimentazione, cavo GPIB per collegare l’interfacca GPIB all’NI Instrument Simulator e cavo seriale per collegare il computer all’NI Instrument Simulator

Ÿ

Conduttori, due per stazione

2. Copiate i file dai dischi che accompagnano questo manuale come descritto nella sezione C, Installazione del Software del Corso, della Guida dello Studente e il file readme.txt sui dischetti. 3. Provate la stazione avviando LabVIEW selezionando Start»Programs»Station Tests»LV Station Test per avviare il VI LV Station Test. Fate riferimento al coordinatore delle risorse formative per la clientela per questo VI. 4. Aprite Measurement & Automation Explorer per verificare che sia il dispositivo DAQ che l’interfaccia GPIB lavorino correttamente. 5. Verificate che il driver degli strumenti NI DEVSIM sia installato e che l’NI Instrument Simulator lavori sia in modalità GPIB che seriale.

 National Instruments Corporation

A-7

LabVIEW Corso Base I


Appendice

Note

LabVIEW Corso Base I

A-8

ď›™ National Instruments Corporation


LabVIEW Corso Base II

Corso sulla versione software 6.0 Edizione settembre 2000 Part Number 320629G-01 Traduzione Luglio 2001

A Survey of Modern Computer-Based Experiments Copyright © Copyright 2000 National Instruments Corporation. Tutti i diritti riservati. In base alle leggi sul copyright questa pubblicazione non può essere riprodotta o trasmessa in alcuna forma elettronica o meccanica, inclusa la fotocopia, la registrazione, la memorizzazione in banche dati, o tradotta, completamente o parzialmente, senza il consenso preventivo della National Instruments Corporation. I prodotti e i nomi delle società elencati sono marchi o nomi commerciali registrati delle rispettive società. Marchi LabVIEW™, National Instrument™ e ni.com™ sono marchi registrati di National Instruments Corporation. I prodotti o le società citate sono marchi registrati o marchi delle rispettive società.


Indice

Worldwide Technical Support and Product Information ni.com National Instruments Corporate Headquarters 11500 North Mopac Expressway Austin, Texas 78759-3504 USA Tel: 512 794 0100 Worldwide Offices Australia 03 9879 5166, Austria 0662 45 79 90 0, Belgium 02 757 00 20, Brazil 011 284 5011, Canada (Calgary) 403 274 9391, Canada (Ontario) 905 785 0085, Canada (QuĂŠbec) 514 694 8521, China 0755 3904939, Denmark 45 76 26 00, Finland 09 725 725 11, France 01 48 14 24 24, Germany 089 741 31 30, Greece 30 1 42 96 427, Hong Kong 2645 3186, India 91805275406, Israel 03 6120092, Italy 02 413091, Japan 03 5472 2970, Korea 02 596 7456, Mexico (D.F.) 5 280 7625, Mexico (Monterrey) 8 357 7695, Netherlands 0348 433466, New Zealand 09 914 0488, Norway 32 27 73 00, Poland 0 22 528 94 06, Portugal 351 1 726 9011, Singapore 2265886, Spain 91 640 0085, Sweden 08 587 895 00, Switzerland 056 200 51 51, Taiwan 02 2528 7227, United Kingdom 01635 523545

LabVIEW Corso Base II

ii

ď›™ National Instruments Corporation


Indice

Indice Guida per lo studente A. Descrizione di questo manuale ...................................................................... GS-1 B. Prerequisiti ..................................................................................................... GS-3 C. Installazione del software per il corso ........................................................... GS-4 D. Obiettivi del corso.......................................................................................... GS-5 E. Tavola d’orientamento ................................................................................... GS-6 F. Convenzioni adottate nel corso ...................................................................... GS-7

Lezione 1 Pianificazione di applicazioni in LabVIEW A. Il processo di pianificazione e di progetto..................................................... 1-2 B. Il processo di implementazione ..................................................................... 1-3 C. Tecniche di gestione degli errori.................................................................... 1-4 D. Architetture di programmazione in LabVIEW .............................................. 1-10 E. Modelli di VI.................................................................................................. 1-21 Sommario, trucchi e consigli .............................................................................. 1-24

Lezione 2 Progettazione di pannelli frontali A. Nozioni fondamentali sull’interfaccia utente................................................. 2-2 B. Utilizzo di cluster booleani come menu......................................................... 2-14 C. Nodi proprietà ................................................................................................ 2-24 Proprietà comuni................................................................................................. 2-27 D. Proprietà dei grafici ....................................................................................... 2-37 E. Riferimenti al controllo .................................................................................. 2-46 F. Menu run-time di LabVIEW (opzionale)....................................................... 2-51 G. Diagrammi d’intensità ................................................................................... 2-60 Sommario, trucchi e consigli .............................................................................. 2-64 Esercizi aggiuntivi .............................................................................................. 2-66

 National Instruments Corporation

iii

LabVIEW Corso Base I


Indice

Lezione 3 Tecniche di gestione dei dati A. Tecniche di gestione dei dati in LabVIEW.................................................... 3-2 B. Variabili locali ............................................................................................... 3-4 C. Variabili globali ............................................................................................. 3-14 D. Avvertenze importanti su variabili locali e globali........................................ 3-23 E. DataSocket ..................................................................................................... 3-26 Sommario, trucchi e consigli .............................................................................. 3-34 Esercizi aggiuntivi .............................................................................................. 3-35

Lezione 4 Tecniche avanzate di I/O su file A. Lavorare con file a flusso di byte .................................................................. 4-2 B. File datalog di LabVIEW............................................................................... 4-12 C. Salvataggio di dati su disco............................................................................ 4-19 Sommario, trucchi e consigli .............................................................................. 4-20 Esercizi aggiuntivi .............................................................................................. 4-21

Lezione 5 Sviluppo di grandi applicazioni in LabVIEW A. Assemblaggio di un’applicazione in LabVIEW ............................................ 5-2 B. Caratteristiche di LabVIEW per lo sviluppo di progetti................................ 5-14 C. Strumenti di LabVIEW per la gestione di progetti ........................................ 5-22 Sommario, trucchi e consigli .............................................................................. 5-34 Esercizi aggiuntivi .............................................................................................. 5-35

Lezione 6 Controllo delle prestazioni A. Panoramica sul multithreading e il multitasking in LabVIEW ..................... 6-2 B. La finestra Profile .......................................................................................... 6-6 C. Velocizzare i VI ............................................................................................. 6-13 D. Memoria di sistema........................................................................................ 6-26 E. Ottimizzazione dell’uso della memoria da parte dei VI................................. 6-29 Sommario, trucchi e consigli .............................................................................. 6-47

Appendice A. SubVI polimorfici.......................................................................................... A-2 B. Grafica personalizzata in LabVIEW .............................................................. A-7 C. Il Web Server in LabVIEW ........................................................................... A-14 D. Informazioni aggiuntive................................................................................. A-19 E. Tabella delle corrispondenze dei caratteri ASCII .......................................... A-21

LabVIEW Corso Base II

iv

 National Instruments Corporation


Guida per lo studente Grazie per aver acquistato il kit del Corso Base II di LabVIEW. Voi potrete iniziare a sviluppare un’applicazione subito dopo aver completato gli esercizi di questo manuale. Questo manuale e il software di accompagnamento vengono utilizzati nel Corso Base II di LabVIEW a carattere pratico della durata di due giorni. Voi potete utilizzare l’acquisto di questo kit per iscrivervi al corso senza versare la corrispondente quota di registrazione se vi registrate entro 90 giorni dall’acquisto del kit. Visitate la sezione Customer Education del sito ni.com per i programmi dei corsi online, i prospetti, i centri di formazione, e la registrazione di classi.

A. Descrizione di questo manuale Questo manuale vi insegna ad utilizzare LabVIEW per sviluppare applicazioni di test e misure, di acquisizione dati, di controllo degli strumenti, di memorizzazione dati, di analisi delle misure e di generazione di rapporti. Questo manuale presuppone che abbiate familiarità con Windows, Macintosh o Unix e che abbiate esperienza nella scrittura di algoritmi sotto forma di diagrammi di flusso o di schemi a blocchi e che inoltre abbiate svolto il Corso Base I o abbiate un’esperienza equivalente. Il manuale è suddiviso in lezioni, ognuna delle quali copre un argomento o un insieme di argomenti. Ogni lezione consiste in: y

Un’introduzione che descrive lo scopo della lezione e che cosa imparerete

y

Una descrizione degli argomenti trattati nella lezione

y

Un insieme di esercizi per fissare gli argomenti

y

Un insieme di esercizi aggiuntivi per approfondimenti se il tempo lo consente

y

Un sommario che sottolinea concetti importanti e le conoscenze impartite nella lezione

 National Instruments Corporation

GS-1

LabVIEW Corso Base II


Guida per lo studente

Diversi esercizi presenti in questo manuale utilizzano un dispositivo plugin multifunzione per l’acquisizione dati (DAQ) collegato ad un DAQ Signal Accessory contenente un sensore di temperatura, un generatore di funzioni e dei LED. Se non possedete questo hardware, potete completare comunque la maggior parte degli esercizi. Assicuratevi di utilizzare le versioni demo dei VI quando lavorate con gli esercizi. Gli esercizi che richiedono esplicitamente dell’hardware sono contrassegnati con l’icona mostrata a lato. Potete anche utilizzare altro hardware rispetto a quello indicato precedentemente. Per esempio potete utilizzare un altro dispositivo DAQ della National Instruments collegato ad una sorgente di segnale, come ad esempio un generatore di funzioni. Ogni esercizio mostra una figura con un pannello frontale finito e lo schema a blocchi dopo che avete mandato in esecuzione il VI, come mostrato nell’illustrazione seguente. Dopo ogni schema a blocchi segue una descrizione di ogni oggetto presente nello schema a blocchi.

1 Pannello frontale

LabVIEW Corso Base II

2 Schema a blocchi

GS-2

3

Commenti (questi non li inserite)

 National Instruments Corporation


Guida per lo studente

B. Prerequisiti Prima di utilizzare questo manuale, assicuratevi di avere i seguenti:

(Windows) Windows 95 o successivi installato sul vostro computer; (Macintosh) Power Macintosh con sistema operativo MacOS 7.6.1 o successivi; (UNIX) workstation Sun con Solaris 2.5 o successivi e

software di sistema XWindows, una workstation modello HP 9000 serie 700 con HP-UX 10.20 o successivi o un PC con Linux kernel 2.0.x o successivi per architetture Intel x86.

(Windows) Dispositivo DAQ multifunzione configurato come device 1 utilizzando Measurement & Automation Explorer; (Macintosh)

Dispositivo DAQ multifunzione nello Slot 1

DAQ Signal Accessory, conduttori e cavi

LabView Professional Development System 6.0 o successivi

(Opzionale) Un’applicazione per word processing come (Windows) Notepad, WordPad, (Macintosh) TeachText, (UNIX) Text Editor, vi o vuepad

I dischetti del Corso Base II di LabVIEW, contenenti i seguenti file:

Nome file LVB2SW.exe LVB2Sol.exe LVB2Read.txt

 National Instruments Corporation

Descrizione Archivio contenente i VI utilizzati nel corso Archivio contenente gli esercizi completi del corso File di testo che descrive la procedura di installazione del software del corso

GS-3

LabVIEW Corso Base II


Guida per lo studente

C. Installazione del software per il corso Seguite i passi seguenti per installare il software di LabVIEW Corso Base.

Windows 1. Avviate il programma denominato LVB2SW.exe. I file del corso verranno estratti nella directory c:\exercises\LV Basics 2. Basics2.llb verrà installata nella directory LabVIEW\user.lib. Quando avviate LabVIEW, comparirà una palette denominata Basics 2 Course nella palette User Libraries della palette Functions.

2. (Opzionale) Cliccate due volte su LVB2Sol.exe per installare le soluzioni di tutti gli esercizi nella directory c:\solutions\LV Basics 2.

Macintosh 1. Come mostrato nei punti 1 e 2 dell’installazione sotto Windows, utilizzate un PC con Windows per estrarre i file e trasferirli nel vostro Macintosh. Se non avete accesso ad un PC, contattate National Instruments per i file decompressi. 2. Copiate i file sul vostro hard disk utilizzando la struttura a directory descritta nella sezione Windows.

UNIX 1. Come mostrato nei punti 1 e 2 dell’installazione sotto Windows, utilizzate un PC con Windows per estrarre i file e trasferirli nella vostra workstation. Se non avete accesso ad un PC, contattate National Instruments per i file decompressi. 2. Caricate il disco PC che state utilizzando per trasferire i file. Il corso presuppone la struttura a directory descritta nella sezione Windows. Copiate tutti i file nelle opportune locazioni.

LabVIEW Corso Base II

GS-4

 National Instruments Corporation


Guida per lo studente

D. Obiettivi del corso Il corso vi fornisce una preparazione che vi consente di: y

Comprendere il processo di sviluppo dei VI.

y

Comprendere alcune architetture comuni di programmazione di VI.

y

Progettare interfacce utente (pannelli frontali) efficaci.

y

Utilizzare le tecniche di gestione dei dati nei VI.

y

Utilizzare le tecniche avanzate di I/O su file.

y

Utilizzare LabVIEW per creare le vostre applicazioni.

y

Migliorare l’utilizzo della memoria e le prestazioni dei vostri VI.

Applicherete questi concetti nella Lezione 5, Sviluppo di applicazioni più grandi in LabVIEW. Nella Lezione 5, voi realizzerete un progetto che utilizza i VI che avete creato nelle Lezioni 1, 2, 3 e 4. Mentre questi VI singolarmente illustrano concetti e caratteristiche specifici di LabVIEW, essi fanno parte di un progetto più grande che completerete nella Lezione 5. Il progetto che realizzerete dovrà soddisfare i punti seguenti: y

Fornire un’interfaccia utente a menu.

y

Richiedere all’utente di entrare nel programma con un nome e una password corretti.

y

Se l’immissione dei dati da parte dell’utente non è corretta, disabilitare le altre caratteristiche.

y

Acquisire dati con la specifica configurazione dell’utente.

y

L’utente può analizzare un sottoinsieme di dati e salvare i risultati su file.

y

L’utente può caricare e visualizzare precedentemente salvati su disco.

i

risultati

dell’analisi

Questo corso non vi fornisce le descrizioni seguenti: y

Metodi di programmazione in LabVIEW coperti dal LabVIEW Corso Base I.

y

Teoria della programmazione

y

Ogni VI interno, funzione o oggetto

y

Lo sviluppo di un’applicazione completa per ogni studente della classe.

 National Instruments Corporation

GS-5

LabVIEW Corso Base II


Guida per lo studente

E. Tavola d’orientamento Pianificazione di applicazioni in LabVIEW

Sviluppo di diagrammi di flusso per il VI Application Exercise

Progettazione di pannelli frontali

Realizzazione di: Menu di interfaccia utente, VI Acquire Data, VI Analyze & Present Data, VI Disable Controls

Tecniche di gestione dei dati

Realizzazione del VI Login

Tecniche avanzate di I/O su file

Creazione di progetti più grandi

Realizzazione del VI Save Data to File (completa il VI Analysis & Present Data) Studio del VI View Analysis File Assemblaggio di parti per realizzare il VI Application Exercise e terminare il progetto

Considerazioni sulle prestazioni

LabVIEW Corso Base II

GS-6

 National Instruments Corporation


Guida per lo studente

F. Convenzioni adottate nel corso Nel manuale del corso vengono adottate le convenzioni seguenti: »

Il simbolo » vi guida attraverso i menu nidificati e le opzioni delle finestre di dialogo fino all’azione finale. La sequenza File»Page Setup»Options vi indica che dovete partire dal menu File, scegliere la voce Page Setup e quindi scegliere Options dall’ultima finestra di dialogo. Questa icona indica una nota, e vi avverte di leggere una informazione importante. Questa icona vi indica che l’esercitazione richiede un’interfaccia GPIB plug-in o un dispositivo DAQ.

bold

Il testo in grassetto vi indica le voci che voi dovete selezionare o su cui cliccare del software, come le voci di menu e le opzioni della finestra di dialogo. Il testo in grassetto indica anche nomi di parametro, controlli e pulsanti del pannello frontale, finestre di dialogo, sezioni di finestre di dialogo, nomi di menu e nomi di palette.

italic

Il testo in corsivo indica variabili, enfasi, un riferimento incrociato o un’introduzione ad un concetto chiave. Questo font indica anche del testo che dovete introdurre o un valore che dovete applicare.

courier

Il testo in questo font indica testo o caratteri che dovete inserire da tastiera, sezioni di codice, esempi di programmazione, ed esempi di sintassi. Questo font viene usato anche per nomi propri di drive di dischi, percorsi, directory, sottoprogrammi, nomi di dispositivi, funzioni, operazioni, variabili, nomi file ed estensioni, parti di codice.

courier bold Arial narrow

Il testo in questo font indica una piattaforma specifica e indica che il testo seguente si applica solo a quella piattaforma.

Click tasto destro

(Macintosh) Premere <Command> e cliccare per ottenere la stessa azione

di un click col tasto destro del mouse.

 National Instruments Corporation

GS-7

LabVIEW Corso Base II


Guida per lo studente

LabVIEW Corso Base II

GS-8

ď›™ National Instruments Corporation


Lezione 1 Pianificazione di applicazioni in LabVIEW Questa lezione descrive alcuni argomenti riguardanti lo sviluppo di applicazioni in LabVIEW, incluso il processo di progettazione, l’organizzazione di subVI componenti e il processo di combinazione di questi componenti per creare un’applicazione completa. Questa lezione descrive anche le comuni architetture di programmazione in LabVIEW tramite alcuni strumenti che vi aiutano nella realizzazione di VI.

Imparerete: A. A pianificare e progettare nel modo migliore lo sviluppo di applicazioni in LabVIEW B. A convertire le vostre linee guida in subVI di LabVIEW C. A conoscere le tecniche di gestione degli errori D. A conoscere le architetture di programmazione in LabVIEW più comuni E. A conoscere i modelli dei VI

 National Instruments Corporation

1-1

LabVIEW Corso Base II


Lezione 1

Pianificazione di applicazioni in LabVIEW

A. Il processo di pianificazione e di progetto Per impostare grandi progetti in LabVIEW, vedrete che di solito inizierete con un approccio di tipo top-down. Questo vuol dire che inizialmente definite le caratteristiche e le specifiche generali. Dopo aver definito i requisiti dell’applicazione in base alle esigenze del vostro cliente, iniziate a sviluppare i subVI che volete eventualmente assemblare per creare il progetto completo. Questo stadio rappresenta il periodo di sviluppo bottom-up. Il riscontro con il cliente vi aiuta a determinare nuove caratteristiche e miglioramenti per la successiva versione del prodotto, riportandovi alla fase progettuale. Lo schema seguente illustra questo processo di sviluppo del progetto.

Processo di confronto con il cliente

Definizione del progetto

Prove e rilascio del prodotto finale

Progetto del diagramma di flusso

Integrazione di subVI nel progetto

Implementazione dei nodi come VI

Prove sui subVI

Top-Down

Bottom-up

Processo di sviluppo dei progetti in LabVIEW

Progettare un diagramma di flusso vi aiuta a visualizzare il funzionamento della vostra applicazione e ad impostare la gerarchia complessiva del vostro progetto. Siccome LabVIEW è un linguaggio di programmazione a flusso di dati e i suoi schemi a blocchi sono simili a diagrammi di flusso tipici, è importante pianificare con cura questo diagramma. Potete implementare direttamente molti nodi del diagramma di flusso come subVI di LabVIEW. Pianificando con cura il diagramma di flusso prima dell’implementazione della vostra applicazione in LabVIEW, potrete risparmiare del tempo successivamente.

LabVIEW Corso Base II

1-2

 National Instruments Corporation


Lezione 1

Pianificazione di applicazioni in LabVIEW

Tenete comunque presente le seguenti linee guida per lo sviluppo del progetto: •

Definite accuratamente le specifiche del sistema.

Determinate in maniera chiara le aspettative dell’utente finale.

Documentate che cosa deve effettuare l’applicazione.

Pianificate per il futuro modifiche ed aggiunte.

B. Il processo di implementazione Dopo aver completato il processo di pianificazione, implementate la vostra applicazione sviluppando i subVI che corrispondono ai nodi del diagramma di flusso. Sebbene non possiate sempre adottare questo approccio, esso vi aiuta a rendere la vostra applicazione modulare. Definendo in maniera chiara una gerarchia delle specifiche della vostra applicazione, create uno schema per l’organizzazione dei VI che sviluppate. Inoltre, la struttura a moduli rende più facile il test di piccole parti di un’applicazione prima di passare ad una loro combinazione. Se realizzate un’intera applicazione su un unico schema a blocchi senza subVI, potreste non essere in grado di iniziare un test senza prima aver realizzato la maggior parte dell’applicazione. A quel punto, risulta molto difficile risolvere problemi che si dovessero presentare. Inoltre, effettuando test su parti più piccole di VI, più specifiche, potete determinare difetti di programmazione iniziali e correggerli prima di investire ore in implementazione. Prevedendo uno sviluppo modulare e gerarchico, è più facile mantenere il controllo del codice sorgente del vostro progetto e dello stato del progetto. Un altro vantaggio che deriva dall’utilizzo di subVI è che sarà più facile in futuro apportare modifiche e miglioramenti all’applicazione. Dopo aver realizzato e testato i subVI necessari, potrete completare l’applicazione in LabVIEW. Questa è la parte di sviluppo bottom-up.

 National Instruments Corporation

1-3

LabVIEW Corso Base II


Lezione 1

Pianificazione di applicazioni in LabVIEW

C. Tecniche di gestione degli errori Nel LabVIEW Corso Base I, avete utilizzato i cluster di error in e di error out per trasferire le informazioni sugli errori tra funzioni e subVI. Questi cluster di errore contengono tre parti di informazioneun booleano di stato che indica un valore true per un errore, un numero che indica il codice di errore e la stringa sorgente che visualizza quale funzione o subVI ha generato l’errore. Potete utilizzare la funzione Unbundle o Unbundle By Name che si trova nella palette Functions»Cluster per estrarre questa informazione come indicato nello schema a blocchi seguente.

Cluster di errore

L’esempio precedente illustra un tipico uso dell’approccio error in/error out. I VI di I/O su File e le funzioni utilizzano i cluster di errore per passare le informazioni da un’operazione alla successiva. Potete quindi utilizzare i VI di gestione degli errori dalla riga in basso della palette Time&Dialog per avvisare l’utente di ogni condizione di errore verificatasi.

I VI di gestione degli errori Il VI Simple Error Handler prende il cluster error in o il valore del codice di errore e in caso di errore apre una finestra di dialogo che descrive l’errore e le possibili ragioni di esso. Potete anche modificare il tipo di finestra di dialogo che si apre visualizzando un pulsante OK, non visualizzare per niente una finestra di dialogo o visualizzare una finestra di dialogo e fornire all’utente la possibilità di continuare o di arrestare il VI.

Il VI General Error Handler accetta il cluster error in o il valore del codice di errore e in caso di errore appare una finestra di dialogo del tipo specificato. Comunque potete anche impostare una lista di gestione degli errori per fare in modo che gli errori specificati siano cancellati o impostati quando occorre.

LabVIEW Corso Base II

1-4

 National Instruments Corporation


Lezione 1

Pianificazione di applicazioni in LabVIEW

Potete inoltre utilizzare il VI General Error Handler per aggiungere errori alla tabella interna di descrizione degli errori. La tabella di descrizione degli errori descrive tutti gli errori di LabVIEW e le operazioni relative. Perciò potete aggiungere i vostri codici di errore e le descrizioni ai VI di gestione degli errori. Fate riferimento a LabVIEW Help per informazioni su come modificare i vostri VI di gestione degli errori.

In caso di errore, i VI Simple Error Handler e General Error Handler aprono una finestra di dialogo che visualizza le informazioni contenute nel cluster di errore e i possibili motivi di quell’errore come descritto nella tabella interna di descrizione degli errori. Talvolta avete linee separate di operazioni che vengono eseguite in parallelo da LabVIEW e ogni operazione mantiene i propri cluster di errore. Potete utilizzare il VI Merge Errors per combinare diversi cluster di errore in uno.

Il VI Merge Errors controlla i cluster di errore in arrivo o la matrice dei cluster di errore e pone in uscita il primo errore trovato. Se non ci sono errori, LabVIEW restituisce il primo messaggio di avviso e il codice di errore è un valore positivo. Altrimenti LabVIEW fornisce una condizione di assenza di errore.

 National Instruments Corporation

1-5

LabVIEW Corso Base II


Lezione 1

Pianificazione di applicazioni in LabVIEW

Inserimento della gestione degli errori nei vostri VI Dovreste inserire la gestione degli errori nei vostri VI in aggiunta all’utilizzo dei cluster di errore per VI e funzioni interne. Per esempio, quando state costruendo un subVI da utilizzare in un progetto più grande, potreste non volere l’esecuzione di subVI in caso di errore occorso precedentemente. Potete collegare i cluster di errore ad una struttura Case per considerare le condizioni di Error o No Error come mostrato nell’esempio seguente.

Inserite qui il codice da eseguire quando non ci sono stati errori

Come mostrato nell’esempio precedente, inserite il codice che volete eseguire nella condizione No Error e quindi definite il valore di errore in uscita corrispondente alla condizione in funzione di quello che avviene in quella condizione. Nell’esercizio successivo realizzerete un VI che genera dati, li analizza e li presenta sul pannello frontale utilizzando i cluster di errore in modo appropriato.

LabVIEW Corso Base II

1-6

 National Instruments Corporation


Lezione 1

Esercitazione 1-1 Obiettivo:

Pianificazione di applicazioni in LabVIEW

VI Generate & Analyze Data

Realizzare un VI che generi, analizzi e visualizzi i dati utilizzando tecniche di gestione degli errori Realizzerete un VI che genera una sinusoide con rumore, calcola la risposta in frequenza di questi dati e rappresenta gli andamenti temporali e in frequenza su due grafici. Utilizzerete i cluster di errore e i VI di gestione degli errori per monitorare correttamente le condizioni di errore

Nota Utilizzerete questo VI nell’appendice.

Pannello frontale

1. Aprite un nuovo VI. 2. Aggiungete tre cursori verticali che si trovano nella palette Controls»Numeric, il pulsante Stop che si trova nella palette Controls»Boolean, e due grafici di forme d’onda che si trovano nella palette Controls»Graph, come indicato nel pannello frontale precedente. Etichettateli opportunamente. Creerete due clusterSampling Info e averaging parametersdallo schema a blocchi.

 National Instruments Corporation

1-7

LabVIEW Corso Base II


Lezione 1

Pianificazione di applicazioni in LabVIEW

Schema a blocchi

3. Aprite e realizzate lo schema a blocchi utilizzando i componenti seguenti. a. Inserite un ciclo While che si trova nella palette Functions»Structures. Questo impone al VI di continuare a generare e ad analizzare i dati finché l’utente clicca sul pulsante di Stop. Cliccate con il tasto destro del mouse sul terminale condizionale e selezionate Stop If True. b. Inserite il VI Sine Waveform che si trova nella palette Functions»Analyze»Waveform Generation. Questo VI genera una forma d’onda sinusoidale con una data frequenza, ampiezza e impostazioni sul campionamento. Per creare il controllo del cluster con le impostazioni sul campionamento, cliccate con il tasto destro del mouse sul terminale d’ingresso e selezionate Create»Control dal menu rapido. c. Inserite il VI Uniform White Noise Waveform che si trova nella palette Functions»Analyze»Waveform Generation. Questo VI genera un rumore bianco uniforme definito da ampiezza e informazioni sul campionamento. d. Inserite il VI Merge Errors che si trova nella palette Functions»Time & Dialog. Questo VI combina i cluster di errore che provengono dai VI Sine e Noise in un unico cluster di errore. e. Inserite il VI Add Waveforms che si trova nella palette Functions»Waveform»Waveform Operations. Questa funzione somma le due forme d’onda per ottenere una sinusoide con rumore. f. Inserite il VI FFT Power Spectrum che si trova nella palette Functions»Analyze»Waveform Measurements. Questo VI calcola la risposta in frequenza dell’ingresso della forma d’onda tempo-variante e media i dati secondo i parametri specificati.

LabVIEW Corso Base II

1-8

 National Instruments Corporation


Lezione 1

Pianificazione di applicazioni in LabVIEW

Per creare il controllo del cluster dei parametri della media, cliccate con il tasto destro del mouse sul terminale d’ingresso e selezionate Create»Control dal menu rapido. g. Inserite la funzione Wait Until Next ms Multiple che si trova nella palette Functions»Time & Dialog. Questa funzione determina l’esecuzione del ciclo While ogni mezzo secondo. Per creare una costante, cliccate con il tasto destro del mouse sul terminale d’ingresso e selezionate Create»Constant dal menu rapido. h. Inserite la funzione Unbundle By Name che si trova nella palette Functions»Cluster. Questa funzione estrae il booleano di stato dal cluster di errore in modo da arrestare il ciclo in caso di errore. i. Inserite la funzione Or che si trova nella palette Functions»Boolean. Questa funzione combina il Boolean dello stato di errore e il pulsante Stop del pannello frontale affinché il ciclo si fermi se uno di questi valori diventa True. j. Inserite il VI Simple Error Handler che si trova nella palette Functions»Time & Dialog. Una finestra di dialogo appare in questo VI in caso di errore e visualizza informazioni sull’errore. 4. Salvate questo VI come Generate & Analyze Data.vi nella directory c:\exercises\LV Basics 2. 5. Osservate come i VI che avete utilizzato nello schema a blocchi gestiscono gli errori. Cliccate due volte sul VI Sine Waveform e aprite il suo schema a blocchi. Notate che la prima cosa che fa è di osservare l’errore nel cluster per verificare l’esistenza di errori precedenti. Se c’è stato un errore, LabVIEW fornisce una forma d’onda vuota e passa all’esterno le informazioni sull’errore. Se non ci sono stati errori, LabVIEW genera una forma d’onda sinusoidale con i parametri d’ingresso specificati. 6. Avviate il VI. Potete regolare i controlli del pannello frontale per vedere i cambiamenti temporali e in frequenza delle forme d’onda. Potete forzare un errore inserendo valori sbagliati in questi controlli. Per esempio, una frequenza di campionamento Fs troppo bassa o troppo alta fornisce un errore. Attivando l’averaging mode, potete estrarre il picco della sinusoide dal rumore indipendentemente dalle ampiezze. Notate come agiscono le diverse tecniche di media sul segnale. 7. Fermate il VI e chiudetelo quando avete finito.

Fine dell’esercitazione 1-1

 National Instruments Corporation

1-9

LabVIEW Corso Base II


Lezione 1

Pianificazione di applicazioni in LabVIEW

D. Architetture di programmazione in LabVIEW Potete sviluppare meglio programmi in LabVIEW e in altri linguaggi di programmazione se seguite tecniche e architetture di programmazione coerenti. I programmi strutturati sono più facili da mantenere e da capire. Ora che avete creato diversi VI in LabVIEW sia nel LabVIEW Corso Base I che in esperienze di programmazione simili, questo concetto di programmazione strutturata viene descritto più in dettaglio. Uno dei modi migliori per creare un’architettura di programmazione che sia facile da comprendere è di seguire tecniche di programmazione modulare e realizzare subVI per operazioni ripetute o raggruppabili per analogia. Per esempio, fate riferimento al VI che avete realizzato nell’esercitazione 1-1. I subVI che avete utilizzato rendono il VI molto facile da seguire e da capire ed ogni parte può essere riutilizzata in altri VI. Con la documentazione dello schema a blocchi e quella presente nell’opzione File»VI Properties»Documentation, un VI modulare è facile da capire e da modificare nel futuro. Potete strutturare i VI in maniera diversa a seconda della funzionalità che volete assegnarli. Questa sezione descrive alcuni tipi comuni di architetture per VI, con i loro vantaggi/svantaggisemplice, generale, a cicli paralleli, a condizioni multiple e a macchine di stato.

Architettura di VI semplice Quando fate dei calcoli o effettuate delle misure veloci di laboratorio, non avete bisogno di un’architettura complessa. Il vostro programma potrebbe essere un singolo VI che esegue una misura, o un calcolo e visualizza o registra i dati su disco. L’architettura di VI semplice di solito non richiede un’azione specifica di avvio o di stop da parte dell’utente e il VI può essere attivato quando l’utente clicca sul pulsante di run. Oltre ad essere utilizzata per semplici applicazioni, questa architettura viene usata per componenti funzionali all’interno di applicazioni più grandi. Potete convertire questi semplici VI in subVI che vengono usati come blocchi costituenti di applicazioni più grandi.

LabVIEW Corso Base II

1-10

 National Instruments Corporation


Lezione 1

Pianificazione di applicazioni in LabVIEW

Il pannello frontale e lo schema a blocchi precedente sono del VI Convert C to F che avete realizzato nel LabVIEW Corso Base I. Questo VI esegue l’unico compito di convertire un valore da gradi Celsius in gradi Fahrenheit. Potete utilizzare questo semplice VI in altre applicazioni che necessitano di questa conversione senza aver bisogno di ricordare l’equazione.

Architettura generale di un VI Nel progettare un’applicazione, generalmente dovete passare attraverso tre fasi: Inizializzazione

Questa sezione viene utilizzata per inizializzare l’hardware, leggere le informazioni di configurazione dai file o per richiedere all’utente la posizione dei file.

Applicazione principale

Questa sezione in generale consiste in almeno un ciclo che viene ripetuto fino a quando l’utente decide di uscire dal programma o il programma si arresta per altri motivi come il completamento di un I/O.

Chiusura

Questa sezione di solito si occupa di chiudere i file, di scrivere le informazioni di configurazione su disco o di ripristinare l’I/O sullo stato di default.

Lo schema a blocchi seguente mostra questa architettura generale. Per applicazioni semplici, il ciclo dell’applicazione principale può essere abbastanza semplice. Quando avete interfacce utente complicate o eventi multipli, come ad esempio azioni dell’utente, trigger sull’I/O e così via, questa sezione può diventare più complicata. Le illustrazioni successive mostrano le strategie di progetto che potete adottare per progettare grandi applicazioni.

Inserite qui il vostro codice

 National Instruments Corporation

1-11

LabVIEW Corso Base II


Lezione 1

Pianificazione di applicazioni in LabVIEW

Notate nello schema a blocchi precedente che i collegamenti del cluster di errore controllano l’ordine di esecuzione delle tre sezioni. Il ciclo While non può iniziare l’esecuzione se il VI Startup non ha finito l’esecuzione e ha fornito il cluster di errore. Di conseguenza, il VI Shutdown non può essere eseguito finché il programma principale all’interno del ciclo While non ha terminato l’esecuzione e il cluster di errore è passato all’esterno del ciclo. Un’altra cosa da notare nello schema a blocchi precedente è la funzione di attesa. Una funzione di attesa è necessaria in molti cicli soprattutto se quel ciclo sta monitorando un ingresso da parte dell’utente sul pannello frontale. Senza la funzione di attesa, il ciclo potrebbe rimanere in esecuzione continuativamente, utilizzando tutte le risorse del sistema. La funzione di attesa forza l’esecuzione asincrona del ciclo anche se l’intervallo di attesa viene impostato su zero millisecondi. Se le operazioni all’interno del ciclo principale dipendono da azioni dell’utente, allora il periodo di attesa può essere aumentato ad un livello accettabile per i tempi di reazione. Un’attesa di 100-200 ms è di solito buona per la maggior parte degli utenti che non si accorgono del ritardo tra la pressione di un pulsante e la successiva esecuzione di un’azione.

Architettura di VI a cicli paralleli Alcune applicazioni richiedono che il programma risponda a diversi eventi concorrenti e li esegua. Un modo di progettare la sezione principale di questa applicazione è di assegnare un ciclo differente ad ogni evento. Per esempio, potreste avere un ciclo differente per ogni pulsante del pannello frontale associato ad un’azione e per ogni altro genere di eventi, come una selezione di menu, trigger su I/O e così via. Lo schema a blocchi seguente mostra l’architettura di VI a cicli paralleli.

Inserite qui il codice per il primo processo

Inserite qui il codice per il secondo processo

Questa struttura è lineare e va bene per alcuni VI semplici del tipo a menu in cui si aspetta che l’utente selezioni un pulsante tra tanti che portano ad azioni differenti. Questa architettura di VI è vantaggiosa rispetto ad altre tecniche anche nel consentire che un evento non vi impedisca di

LabVIEW Corso Base II

1-12

 National Instruments Corporation


Lezione 1

Pianificazione di applicazioni in LabVIEW

rispondere ad altri eventi aggiuntivi. Per esempio, se un utente seleziona un pulsante che determina la comparsa di una finestra di dialogo, i cicli paralleli possono continuare a rispondere ad eventi di I/O. Quindi, il vantaggio principale dell’architettura di VI a cicli paralleli è la sua abilità nel gestire processi multipli indipendenti e contemporanei. Gli svantaggi principali dell’architettura a cicli paralleli riguardano il coordinamento e la comunicazione tra cicli differenti. Il pulsante Stop per il secondo ciclo nello schema a blocchi precedente è una variabile locale. Non potete utilizzare delle linee per passare i dati tra i cicli, perché ciò impedirebbe l’esecuzione in parallelo dei cicli. Invece dovete usare delle tecniche globali per passare le informazioni tra i processi. Ciò può portare a condizioni di conflitto in cui compiti differenti tentano di leggere e di modificare gli stessi dati contemporaneamente determinando risultati inconsistenti e rendendo difficile la ricerca degli errori. Fate riferimento alla Lezione 3, Tecniche di gestione dei dati, di questo corso, per ulteriori informazioni sulle variabili globali, sulle variabili locali e le condizioni di conflitto.

Nota

Architettura di VI con strutture Case multiple Lo schema a blocchi seguente mostra come progettare un VI che possa gestire eventi multipli che possono passare dati in avanti e all’indietro. Invece di usare cicli multipli, potete utilizzare un singolo ciclo che contenga strutture Case separate per ogni evento. Questa architettura di VI dovrebbe essere usata anche nella situazione in cui avete diversi pulsanti sul pannello frontale e ognuno attiva eventi diversi. Le condizioni FALSE seguenti sono vuote.

Codice della Azione 1

Codice della Azione 2

Un vantaggio di questa architettura è che potete utilizzare delle linee per passare i dati. Ciò aumenta la leggibilità. Inoltre riduce il bisogno di utilizzare dati globali e di conseguenza rende meno probabile che incontriate situazioni di conflitto. Potete utilizzare i registri a scorrimento sulla cornice del ciclo per riportare i valori da un’iterazione alla successiva, passando anche i dati.

 National Instruments Corporation

1-13

LabVIEW Corso Base II


Lezione 1

Pianificazione di applicazioni in LabVIEW

Esistono diversi svantaggi nell’architettura di VI con strutture Case multiple. Innanzitutto potete finire con l’avere schemi a blocchi che sono molto grandi e difficili da leggere, modificare e correggere. Inoltre, siccome tutti i gestori degli eventi sono nello stesso ciclo, ognuno viene gestito in modo seriale. Di conseguenza, se un evento prende molto tempo, il vostro ciclo non riesce a gestire altri eventi. Un problema collegato è che gli eventi sono gestiti alla stessa velocità siccome nessun evento può essere ripetuto finché tutti gli oggetti nel ciclo While hanno terminato. In alcune applicazioni, potreste aver bisogno di impostare la priorità degli eventi sull’interfaccia utente per renderli sufficientemente confrontabili con gli eventi di I/O.

Architettura di VI con macchine a stati Potete realizzare schemi a blocchi più compatti utilizzando una singola struttura Case per gestire tutti i vostri eventi. L’architettura di VI con macchine a stati è un metodo per il controllo dell’esecuzione di VI in modo non lineare. Questa tecnica di programmazione è molto utile in VI che sono frazionabili in diversi compiti semplici, come nei VI che agiscono come interfaccia utente. Create una macchina a stati in LabVIEW con un ciclo While, una struttura Case e un registro a scorrimento. Ogni stato della macchina a stati è una condizione nella struttura Case. Inserite i VI e altro codice che volete eseguire nella condizione corretta. Un registro a scorrimento memorizza lo stato da eseguire fino all’iterazione successiva del ciclo. Lo schema a blocchi della macchina a stati è mostrato nelle figure seguenti.

LabVIEW Corso Base II

1-14

 National Instruments Corporation


Lezione 1

Pianificazione di applicazioni in LabVIEW

Codice della Azione 1

Codice della Azione 2

In questa architettura, progettate l’elenco dei possibili eventi, o stati, e quindi mappateli ognuno su una condizione. Per il VI dello schema a blocchi precedente, gli stati possibili sono startup, idle, event 1, event 2 e shutdown. Questi stati sono memorizzati in una costante. Ogni stato ha la sua condizione in cui potete inserire i nodi opportuni. Mentre una condizione è in esecuzione, lo stato successivo viene determinato sulla base del risultato corrente. Lo stato successivo viene memorizzato nel registro a scorrimento. In caso di errore in uno degli stati, viene richiamata la condizione shutdown. Il vantaggio dell’architettura con macchine a stati è che lo schema a blocchi può diventare molto più piccolo, rendendone più facile la lettura e la correzione. Un inconveniente della struttura Sequence è che non si può saltare o interrompere un frame. L’architettura con macchine a stati risolve questo problema perché ogni condizione determina quale stato dev’essere eseguito successivamente. Uno svantaggio dell’architettura con macchine a stati è che con questo approccio potete perdere degli eventi. Se due eventi si presentano nello stesso istante, questo modello gestisce il primo e perde il secondo. Ciò può condurre ad errori che sono difficili da correggere perché possono presentarsi solo occasionalmente. Versioni più complesse dei VI con architettura con macchine a stati contengono codice aggiuntivo che realizza una coda di eventi e stati e così non li perdete.

 National Instruments Corporation

1-15

LabVIEW Corso Base II


Lezione 1

Pianificazione di applicazioni in LabVIEW

Note aggiuntive sulle architetture di programmazione Come con altri linguaggi di programmazione, vengono usati diversi metodi e tecniche di programmazione quando si progetta un VI in LabVIEW. Le architetture mostrate in questa sezione costituiscono dei metodi comuni per fornirvi un’idea di come si deve affrontare la scrittura di un VI. Le strutture dei VI diventano molto più complicate al crescere delle dimensioni delle applicazioni e quando vengono combinati diversi tipi di hardware, di interfacce utente e metodi di verifica degli errori. Tuttavia, vedrete utilizzare queste stesse architetture di programmazione di base. Esaminate gli esempi più grandi e le demo che vengono fornite con LabVIEW e descrivete quale architettura di VI viene usata e perché. Risorse aggiuntive per la realizzazione di applicazioni in LabVIEW sono descritte nel manuale LabVIEW Development Guidelines. Nel paragrafo successivo realizzerete un VI che utilizza una semplice architettura di VI per verificare il nome e la password di un utente.

LabVIEW Corso Base II

1-16

 National Instruments Corporation


Lezione 1

Esercitazione 1-2 Obiettivo:

Pianificazione di applicazioni in LabVIEW

VI Verify Information

Realizzare un VI che mostri una semplice architettura. Realizzerete un VI che accetta un nome e una password e verifica la corrispondenza in una tabella contenente le informazioni degli impiegati. Se il nome e la password coincidono, vengono forniti, come verifica, il nome e un oggetto booleano.

Nota Utilizzerete questo VI nella Lezione 3.

Pannello frontale

1. Aprite un VI e realizzate il pannello frontale precedente. Modificate i controlli a stringa come descritto nelle etichette cliccando con il tasto destro del mouse sul controllo. Il controllo Table che si trova nella palette Controls»List & Table è una matrice bidimensionale di stringhe in cui la prima cella è l’elemento 0,0. 2. Inserite le informazioni mostrate nel pannello frontale precedente in Table e salvate questi valori come default cliccando con il tasto destro del mouse su Table e selezionando Data Operations»Make Current Value Default dal menu rapido.

 National Instruments Corporation

1-17

LabVIEW Corso Base II


Lezione 1

Pianificazione di applicazioni in LabVIEW

Schema a blocchi

Il nome corrisponde

Il nome non corrisponde

3. Aprite e realizzate lo schema a blocchi precedente utilizzando i componenti seguenti. a. Inserite un ciclo While che si trova nella palette Functions»Structures. Questo consente al VI di effettuare continuamente verifiche finché c’è una corrispondenza di nome o non ci sono più righe nella tabella. Notate che è abilitata l’indicizzazione sulla matrice dei nomi ma non sulle altre due voci inserite all’interno del ciclo While. Abilitate l’indicizzazione cliccando con il tasto destro del mouse sul tunnel e selezionando Enable Indexing dal menu rapido. b. Inserite una struttura Case che si trova nella palette Functions»Structures. Se l’ingresso Nome coincide con una voce presente nell’elenco della prima colonna della tabella, allora vengono verificate anche le password. Se Nome non corrisponde all’inserimento corrente, il ciclo passa all’iterazione successiva. Prima di creare una costante booleana nella condizione False, completate i collegamenti della condizione True. Quindi selezionate la condizione False e cliccate con il tasto destro del mouse il tunnel bordato di verde e selezionate Create»Constant dal menu rapido. c. Inserite la funzione Index Array che si trova nella palette Functions»Array. Questa funzione viene utilizzata per tirare fuori la matrice dei nomi dalla tabella. Quando collegate la tabella all’ingresso della matrice di questa funzione, appaiono due indici, di riga e di colonna.

LabVIEW Corso Base II

1-18

 National Instruments Corporation


Lezione 1

Pianificazione di applicazioni in LabVIEW

Cliccate con il tasto destro del mouse sull’indice inferiore, di colonna, e selezionate Create»Constant dal menu rapido. Utilizzerete due di queste funzioni, quindi fatene una copia e inseritela nella struttura Case alla condizione True. d. Inserite la funzione Array Size che si trova nella palette Functions»Array. Questa funzione fornisce le dimensioni della matrice dei nomi. e. Inserite la funzione Decrement che si trova nella palette Functions»Numeric. Questa funzione decrementa di uno il numero dei nomi della matrice così si può controllare il ciclo While che parte da 0. f. Inserite la funzione Equal? che si trova nella palette Functions»Comparison. Utilizzerete due di queste funzioni per verificare se l’ingresso Nome coincide con una voce della tabella e analogamente per Password. g. Inserite la funzione Less Than? che si trova nella palette Functions»Comparison. Questa funzione controlla il terminale condizionale del ciclo While. Il ciclo continua ad essere eseguito finché il numero di iterazione corrente è inferiore al numero di righe nella tabella. h. Inserite la funzione Not Or che si trova nella palette Functions»Boolean. Questa funzione controlla anch’essa il terminale condizionale del ciclo While affinché il ciclo continui fino a quando viene trovata una coincidenza o non ci sono più righe nella tabella. i. Inserite la costante Empty String che si trova nella palette Functions»String. Utilizzerete due di queste costanti, una per la condizione True e l’altra per la False. Se i nomi corrispondono ma non le password o se nessuno dei due corrisponde, allora viene fornita una stringa vuota nell’indicatore Nome Confermato. j. Inserite la funzione Select che si trova nella palette Functions»Comparison. Questa funzione viene usata con la verifica della password. Se la password corrisponde, il nome corrente viene inviato all’indicatore Nome Confermato; altrimenti viene inviata la stringa vuota. 4. Salvate il VI come Verify Information.vi. 5. Andate sul pannello frontale ed assicuratevi di avere alcuni nomi, i nomi non devono essere gli stessi usati nel manuale del corso, e password nel controllo della tabella. Se non lo avete già fatto, cliccate con il pulsante destro del mouse sulla tabella e selezionate Data Operations»Make Current Values Default così nomi e password vengono memorizzati permanentemente nella tabella.

 National Instruments Corporation

1-19

LabVIEW Corso Base II


Lezione 1

Pianificazione di applicazioni in LabVIEW

6. Inserite i valori nei controlli Nome e Password ed avviate il VI. Se Nome e Password coincidono con una delle righe presenti in tabella, viene fornito il nome nell’indicatore Nome Confermato e si accende il LED Verificato. Altrimenti viene fornita una stringa vuota e il LED è spento. Assicuratevi di provare diverse combinazioni di nomi e password per verificare il comportamento corretto del VI. 7. Create un’icona per questo VI perché lo utilizzerete come subVI in un esercizio più avanti. Per creare l’icona, cliccate con il tasto destro del mouse sull’icona nell’angolo superiore destro del pannello frontale o dello schema a blocchi e selezionate Edit Icon dal menu. Disegnate un’icona simile a quella mostrata qui.

8. Create il riquadro dei connettori per questo VI cliccando con il tasto destro del mouse sull’icona del pannello frontale e selezionando Show Connector dal menu rapido. Selezionate uno schema e collegate gli oggetti del pannello frontale ai terminali come mostrato nel riquadro dei connettori seguente.

9. Salvate il VI con lo stesso nome. 10. Arrestate e chiudete il VI quando avete finito.

Fine dell’esercitazione 1-2

LabVIEW Corso Base II

1-20

 National Instruments Corporation


Lezione 1

Pianificazione di applicazioni in LabVIEW

E. Modelli di VI Nell’ultima sezione, avete imparato qualcosa sulle architetture di programmazione dei VI. Affinché non dobbiate partire da zero nella realizzazione di un nuovo VI con un pannello frontale e uno schema a blocchi vuoto, vengono inclusi nel pacchetto di LabVIEW alcuni modelli. Questi modelli si trovano nella directory LabVIEW 6\Templates e contengono file con l’estensione .vit. LabVIEW fornisce alcuni modelli di base e comunque non tutte le architetture di VI descritte sono disponibili come modelli. Potete salvare un VI che avete creato come modelli utilizzando l’opzione File»Save with Options come mostrato nella seguente finestra di dialogo.

Questa opzione vi consente di salvare architetture di VI e altre strutture di programmazione che utilizzate spesso per i vostri modelli. Ora esaminerete un paio di modelli.

 National Instruments Corporation

1-21

LabVIEW Corso Base II


Lezione 1

Pianificazione di applicazioni in LabVIEW

Esercitazione 1-3 Obiettivo:

VIT Timed While Loop with Stop e State Machine

Esaminare due modelli di VI forniti con LabVIEW.

Esaminerete i modelli di VI che mostrano sia l’architettura con la macchina a stati sia quella generale.

Pannello frontale

1. Aprite il Timed While Loop with Stop.vit dalla directory LabVIEW 6\Templates. Il pannello frontale contiene solo il pulsante di Stop.

Schema a blocchi

2. Aprite ed esaminate lo schema a blocchi. 3. Noterete come questo VI possieda l’architettura generale di un VI. Esso contiene un ciclo While che si arresta quando cliccate sul pulsante del pannello frontale e una funzione di attesa nel ciclo assicura che questo ciclo non utilizzi tutte le risorse del sistema. 4. Tornate al pannello frontale ed avviate il VI. Esso non fa niente ma continua l’esecuzione fino a quando premete il pulsante di Stop. 5. Arrestate e chiudete il VI quando avete finito. 6. Aprite

State Machine.vit dalla 6\Templates. Il pannello frontale è vuoto.

LabVIEW Corso Base II

il

1-22

directory

LabVIEW

 National Instruments Corporation


Lezione 1

Pianificazione di applicazioni in LabVIEW

Schema a blocchi

7. Aprite ed esaminate lo schema a blocchi. 8. Questa architettura con macchine a stati è implementata in un modo leggermente diverso da quello descritto precedentemente. Questo VI utilizza una costante di stringa per contenere gli stati della struttura Case mentre il VI mostrato precedentemente usava una del tipo enumerated, simile al controllo di tipo ring, per controllare gli stati. Siccome la struttura Case accetta sia numeri che stringhe, non importa come avete specificato i differenti stati. La chiave nell’architettura con macchine a stati è che avete un ciclo While con una struttura Case all’interno in cui ogni condizione è uno stato differente dell’applicazione complessiva. Lo stato successivo viene determinato mentre il VI è in esecuzione sulla base di quello che accade nello stato corrente. 9. Chiudete il VI quando avete finito.

Fine dell’esercitazione 1-3

 National Instruments Corporation

1-23

LabVIEW Corso Base II


Lezione 1

Pianificazione di applicazioni in LabVIEW

Sommario, trucchi e consigli

LabVIEW Corso Base II

y

In molti casi viene usato un approccio del tipo top-down per pianificare la strategia complessiva di un progetto. Lo sviluppo e l’implementazione di un’applicazione di solito è del tipo bottom-up.

y

Nella progettazione di un’applicazione in LabVIEW, è importante determinare l’aspettativa finale dell’utente, cosa deve realizzare esattamente l’applicazione e quali modifiche future potrebbero essere necessarie prima di investire una gran quantità di tempo nello sviluppo di subVI. Dovreste realizzare un diagramma di flusso che vi aiuti a capire come dovrebbe operare l’applicazione e discuterne in dettaglio con il vostro cliente.

y

Dopo aver realizzato il diagramma di flusso, potete sviluppare VI per implementarne i vari passi. È una buona idea di rendere modulare la vostra applicazione in compiti logici elementari, quando possibile. Lavorando con piccoli moduli, potete correggere un’applicazione testando ogni modulo singolarmente. Questo approccio rende molto più facile dell’applicazione in futuro.

y

I cluster di errore sono un metodo potente di gestione degli errori usato in quasi tutti i VI di I/O e le funzioni di LabVIEW. Questi cluster passano le informazioni sugli errori da un VI al successivo.

y

Un gestore degli errori alla fine del flusso dei dati può ricevere il cluster di errore e visualizzare le informazioni sugli errori in una finestra di dialogo.

y

Le architetture di VI più comuni sono quella semplice, quella generale, quella a cicli paralleli, quella a strutture Case multiple e quella a macchine a stati. Ciascuna di queste architetture ha i suoi vantaggi e svantaggi in funzione di quello che deve fare l’applicazione.

y

L’architettura di VI con macchine a stati è molto utile per VI d’interfaccia utente e genera un codice semplice e chiaro.

y

Molti modelli di VI vengono forniti con LabVIEW così non avete bisogno ogni volta di iniziare lo sviluppo di un VI da pannelli frontali e schemi a blocchi vuoti.

y

Fate riferimento al manuale LabVIEW Development Guidelines per ulteriori informazioni sulla progettazione e realizzazione di VI.

1-24

 National Instruments Corporation


Lezione 1

Pianificazione di applicazioni in LabVIEW

Note

ď›™ National Instruments Corporation

1-25

LabVIEW Corso Base II


Lezione 1

Pianificazione di applicazioni in LabVIEW

Note

LabVIEW Corso Base II

1-26

ď›™ National Instruments Corporation


Lezione 2 Progettazione di pannelli frontali Questa lezione vi introduce alla progettazione e realizzazione di interfacce utente per i vostri VI. Dapprima una panoramica ed un elenco di cose da considerare durante la realizzazione del pannello frontale. Quindi in alcune sezioni successive vengono descritti alcuni metodi e strumenti comuni per la personalizzazione dei pannelli. Le sezioni conclusive descrivono parti aggiuntive e oggetti dei pannelli utilizzati per lo sviluppo di interfacce utente.

Imparerete: A. A conoscere gli elementi fondamentali dell’interfaccia utente. B. Ad utilizzare cluster booleani come menu. C. A conoscere i Property Nodes. D. A conoscere le proprietà dei grafici. E. Ad utilizzare i Control References. F. A conoscere i menu run-time di LabVIEW. G. A conoscere gli Intensity Plots.

ď›™ National Instruments Corporation

2-1

LabVIEW Corso Base II


Lezione 2

Progettazione di pannelli frontali

A. Nozioni fondamentali sull’interfaccia utente Quando sviluppate applicazioni che vengono utilizzate da altre persone, dovete seguire alcune regole fondamentali riguardanti l’interfaccia utente. Se il pannello frontale contiene troppi oggetti o presenta un miscuglio di colori e di testo, gli utenti potrebbero non utilizzare correttamente il VI o non ottenere le informazioni importanti dai dati. Questa sezione descrive alcuni elementi da considerare nella realizzazione di pannelli frontali. Una regola da seguire durante la realizzazione di un’interfaccia utente di un VI è di mostrare solamente le parti nel pannello frontale che l’utente ha bisogno di vedere in quel momento. L’esempio seguente mostra un subVI che richiede all’utente un nome come login. Ci sono dei cluster di errore perché è un subVI ma l’utente non ha bisogno di vedere quelle parti o il nome del percorso del file.

L’esempio successivo mostra lo stesso subVI dopo che il pannello frontale è stato ridimensionato e la barra dei menu, le barre di scorrimento e la barra degli strumenti sono stati rimossi con l’opzione VI Properties»Window Appearance»Dialog.

LabVIEW Corso Base II

2-2

 National Instruments Corporation


Lezione 2

Progettazione di pannelli frontali

Utilizzo dei colori Un uso corretto dei colori può migliorare l’aspetto e la funzionalità del vostro pannello frontale. L’utilizzo di troppi colori, tuttavia, può causare contrasti che fanno apparire i pannelli frontali troppo pieni e dispersivi. Ecco alcuni suggerimenti sugli abbinamenti dei colori: y

Iniziate con il grigioselezionate uno o due toni di grigio ed evidenziate i colori che hanno un buon contrasto con lo sfondo.

y

Aggiungete i colori con parsimoniasui grafici, sui pulsanti d’interruzione ed eventualmente sui cursori per le impostazioni importanti. Gli oggetti piccoli hanno bisogno di colori più brillanti e di più contrasto rispetto a quelli più grandi.

y

Utilizzate spaziature ed allineamenti per raggruppare gli oggetti invece di adottare i colori.

y

Dei luoghi buoni per imparare ad utilizzare i colori sono i pannelli degli strumenti stand-alone, le cartine, i giornali e la natura.

Inoltre ricordate che circa il venti per cento degli ingegneri non riconoscono tutti i colori. Essi si basano sui contrasti piuttosto che sui colori quando devono distinguere gli oggetti.

Spaziatura ed allineamento Gli spazi vuoti e l’allineamento sono probabilmente le tecniche più importanti per raggruppare e separare. Più sono gli oggetti che i vostri occhi possono trovare su una linea, più chiara è l’organizzazione. Quando gli oggetti sono disposti su una linea l’occhio segue la linea da sinistra a destra o dall’alto verso il basso. Questo è collegato alla direzione della scrittura. Sebbene alcune culture procedano da destra a sinistra, quasi tutti seguono dall’alto verso il basso. Oggetti centrati sono meglio di quelli disposti casualmente, ma meno ordinati rispetto a quelli allineati a sinistra o a destra. Una fascia di spazio vuoto agisce come un vero strumento di allineamento. Gli oggetti centrati hanno i bordi non allineati e l’ordine non è chiaro.

 National Instruments Corporation

2-3

LabVIEW Corso Base II


Lezione 2

Progettazione di pannelli frontali

I menu sono allineati a sinistra e i collegamenti relativi a destra come mostrato nell’esempio in basso a sinistra del menu File di LabVIEW. E’ più difficile individuare voci nel menu con allineamento al centro come mostrato nell’esempio in basso a destra. Notate come delle semplici linee che dividono sezioni del menu vi aiutino a trovare le voci più rapidamente, rafforzando le relazioni tra le voci della sezione.

Testo e font Il testo è più facile da leggere e l’informazione ha più senso quando la visualizzazione è ordinata. Per tenerne conto durante la realizzazione di pannelli frontali, provate a raggruppare controlli correlati, utilizzando spazi vuoti o linee. Questi metodi funzionano meglio quando non distraggono dal contenuto informativo. Usare troppi font rende il vostro pannello frontale troppo pieno e disorganizzato. E’ meglio utilizzare due o tre dimensioni diverse dello stesso tipo di font. Il Serif aiuta le persone a riconoscere intere parole a distanza. Se state utilizzando più di una dimensione di un font, assicuratevi che le dimensioni siano abbastanza diverse. Altrimenti apparirà come un errore. Analogamente, se utilizzate due diversi tipi di font, assicuratevi che siano distinguibili. Alcune stazioni di operatori possono essere abbagliate o gli utenti potrebbero aver bisogno di leggerle a grande distanza rispetto ai normali computer o con un touch screen. Perciò dovreste utilizzare font più grandi e maggior contrasto.

Consigli e strumenti per l’interfaccia utente Non è necessario o non è intelligente perdere tempo a rendere ogni pannello frontale chiaroconcentratevi su quelli che gli utenti vedono di più.

LabVIEW Corso Base II

2-4

 National Instruments Corporation


Lezione 2

Progettazione di pannelli frontali

Alcuni degli strumenti interni di LabVIEW per rendere i pannelli frontali user-friendly, comprendono controlli di dialogo, controlli tab, decorazioni, menu e ridimensionamento automatico degli oggetti del pannello frontale.

Controlli di dialogo Una tecnica comune che si usa per l’interfaccia utente è di avere finestre di dialogo che compaiono al momento opportuno per interagire con l’utente. Potete fare in modo che un VI appaia come una finestra di dialogo selezionando quell’opzione nella finestra di dialogo File»VI Properties»Window Appearance. La palette Controls»Dialog Controls contiene alcuni tipi di oggetti disponibili nelle finestre di dialogo di sistema. Dovreste utilizzare questi controlli di dialogo per realizzare finestre di dialogo tipo quelle di sistema. I controlli di dialogo cambiano aspetto secondo il sistema operativo e le impostazioni di Window Appearance e di solito ignorano i click a colori eccetto quello trasparente. Se state integrando un grafico o controlli non di dialogo nel pannello frontale, provate a modificarli nascondendo alcune cornici o selezionando colori simili a quelli di sistema.

Controlli Tab Gli strumenti fisici di solito hanno delle buone interfacce utente. Prendete spunto da questi ma considerate controlli più piccoli o più efficienti, come quelli tipo ring o controlli tab laddove ha senso. I controlli tab si trovano nella palette Controls»Dialog Controls o nella palette Controls»Array & Cluster e offrono un modo conveniente per raggruppare insieme oggetti del pannello frontale.

Il modo di utilizzare il controllo tab è di disporlo sul pannello frontale come mostrato precedentemente. Aggiungete tab cliccando con il tasto destro del mouse su un tab esistente e selezionando Add Page After, Add Page Before o Duplicate Page dal menu. Rietichettate i tab con lo strumento Testo ed inserite altri oggetti sul pannello frontale nelle pagine appropriate. I terminali di questi oggetti sono presenti nello schema a blocchi così come lo sono terminali di ogni altro oggetto del pannello frontale.

 National Instruments Corporation

2-5

LabVIEW Corso Base II


Lezione 2

Progettazione di pannelli frontali

Il controllo tab si collega direttamente ad una struttura Case come mostrato precedentemente e il nome della pagina compare in alto come nome della condizione. Potete quindi collegare i dati agli altri terminali a seconda delle necessità.

Decorazioni Uno dei metodi più semplici e spesso trascurato per raggruppare o separare oggetti è di utilizzare una delle possibilità offerte dalla palette Controls»Decorations. Potete scegliere di utilizzare vari tipi di riquadri, frecce e linee dalla palette nel modo seguente:

Potete trovare ulteriori decorazioni nella palette Controls»Classic Controls. La palette seguente mostra i diversi riquadri, cornici, linee, frecce, cerchi e triangoli.

LabVIEW Corso Base II

2-6

 National Instruments Corporation


Lezione 2

Progettazione di pannelli frontali

Menu I menu costituiscono un buon modo di presentare la maggior parte delle funzionalità del pannello frontale in modo ordinato e in uno spazio relativamente piccolo. In tal modo si lascia spazio sul pannello frontale per azioni necessarie in caso di emergenza, voci per principianti, voci necessarie per la produttività e voci che non rientrano nei menu. Assicuratevi anche di aggiungere pulsanti rapidi per i menu per le voci richieste più frequentemente. Più avanti nella lezione imparerete a creare i vostri menu in un VI.

Ridimensionamento automatico di oggetti del pannello frontale Come già detto precedentemente, potete utilizzare le opzioni in VI Properties»Window Appearance per modificare l’aspetto del pannello frontale quando un VI è in esecuzione. Con le opzioni in VI Properties»Window Size potete impostare le dimensioni minime di una finestra, mantenere le proporzioni della finestra al variare dello schermo e impostare il ridimensionamento degli oggetti del pannello frontale in due modi diversi. La maggior parte delle applicazioni professionali non ridimensiona ogni controllo quando le dimensioni della finestra variano, ma prendono una tabella, un grafico o un elenco per adattarlo alla finestra, lasciando gli altri oggetti vicino al bordo della finestra. Per ridimensionare un oggetto del pannello frontale al variare del pannello frontale, selezionate quell’oggetto e quindi Edit»Scale Object With Panel. L’esercizio seguente utilizza alcune delle tecniche descritte per creare un VI con un’interfaccia utente facile da usare.

 National Instruments Corporation

2-7

LabVIEW Corso Base II


Lezione 2

Progettazione di pannelli frontali

Esercitazione 2-1 Obiettivo:

VI Scope Panel

Disporre e separare in modo logico gli oggetti del pannello frontale per rendere l’interfaccia utente di un VI più semplice da leggere e da utilizzare. Ridimensionerete, riorganizzerete e disporrete in modo diverso gli oggetti del pannello frontale per rendere l’interfaccia utente più semplice da utilizzare.

Pannello frontale

1. Aprite il VI Scope Panel dalla directory c:\exercises\LV basics 2. Il pannello frontale è quello mostrato sopra. 2. Spostate i controlli per raggruppare in maniera logica quelli che presentano delle affinità (non tutti possono essere collegati ad un gruppo). Per esempio il pulsante ON/OFF, il potenziometro di posizionamento e il potenziometro Volts/Div etichettati con Channel A operano tutti sul canale A e quindi ha senso disporli vicini l’uno all’altro. Altri due esempi di gruppi potrebbero essere i controlli del Channel B e i tre controlli di trigger. Ricordatevi di utilizzare le possibilità offerte nella barra degli strumenti da Align Objects e Distribute Objects. Consiglio

3. Dopo aver raggruppato i controlli, utilizzate la decorazione Raised Box sulla palette Controls»Decorations per rendere più visibili le separazioni tra i gruppi.

LabVIEW Corso Base II

2-8

 National Instruments Corporation


Lezione 2

Progettazione di pannelli frontali

Ridimensionate la finestra affinché il pannello frontale si adatti alla finestra, come mostrato nell’esempio seguente.

Dovete utilizzare il pulsante Reorder sulla barra degli strumenti delle decorazioni per scegliere Move to Back, affinché i controlli siano visibili al di sopra dei riquadri evidenziati inseriti. Consiglio

4. Selezionate File»VI Properties per visualizzare la finestra di dialogo VI Properties. Selezionate Window Size dal menu a tendina superiore della finestra di dialogo VI Properties. Nella sezione Minimum Panel Size, cliccate sul pulsante <<Set to Current Window Size per impostare le dimensioni minime dello schermo sulle dimensioni correnti della finestra. Cliccate su OK per tornare al pannello frontale. 5. Selezionate il grafico del pannello frontale e selezionate Edit»Scale Object With Panel. LabVIEW ridimensiona il grafico quando viene ridimensionata l’intera finestra e sposta gli altri oggetti. 6. Salvate il VI con lo stesso nome. 7. Ridimensionate la finestra. Notate che il grafico si ridimensiona con la finestra e i controlli mantengono una distanza proporzionale con il grafico e tra di loro, ma non si allargano o si restringono. Tuttavia notate che le decorazioni non si ridimensionano. Per ottenere ciò, dovete utilizzare pulsanti booleani che sembrano gli stessi in ogni condizione e li ridimensionate da programma. Ciò richiede l’uso di Property Nodes e l’argomento verrà trattato più avanti in questa lezione. 8. Chiudete il VI quando avete finito.

Fine dell’esercitazione 2-1

 National Instruments Corporation

2-9

LabVIEW Corso Base II


Lezione 2

Progettazione di pannelli frontali

Esercitazione 2-2 Obiettivo:

VI Acquire Data

Modificare un VI per utilizzare il controllo tab con tecniche appropriate di progettazione dell’interfaccia utente Modificherete il VI Generate & Analyze affinché utilizzi il controlo tab. Una pagina del tab servirà per la generazione dei dati come prima e la seconda pagina servirà per l’acquisizione dati da un dispositivo DAQ.

Nota Utilizzerete questo VI nel progetto della Lezione 5.

Pannello frontale

1. Aprite il VI Generate & Analyze che avete realizzato nell’esercitazione 1-1. Ridimensionate il pannello frontale per fare spazio alla sinistra degli altri oggetti del pannello frontale visto che aggiungerete il controllo tab. 2. Inserite nel pannello frontale un controllo tab che si trova nella palette Controls»Array & Cluster come mostrato precedentemente. Selezionate i controlli Sine Frequency, Sine Amplitude, Sampling Info e Noise Amplitude e inseriteli nella prima pagina del controllo tab.

LabVIEW Corso Base II

2-10

 National Instruments Corporation


Lezione 2

Progettazione di pannelli frontali

3. Nominate le due pagine del controllo tab Simulate e DAQ rispettivamente. Cliccate sulla pagina DAQ e aggiungete oggetti nel modo seguente:

4. Salvate il VI come Acquire Data.vi. 5. Cliccate con il tasto destro del mouse sul controllo DAQ Channel Name e assicuratevi che sia selezionata l’opzione Allow Undefined Names. 6. Per cambiare la scala sul potenziometro per leggere 20.0k invece di 20,000, cliccate con il tasto destro del mouse sul potenziometro e selezionate Format & Precision. Selezionate Engineering Notation e il k viene aggiunto per rappresentare le migliaia.

ď›™ National Instruments Corporation

2-11

LabVIEW Corso Base II


Lezione 2

Progettazione di pannelli frontali

Schema a blocchi

7. Aprite e modificate lo schema a blocchi come precedentemente utilizzando i seguenti componenti:

mostrato

a. Inserite una struttura Case che si trova nella palette Functions»Structures dello schema a blocchi. Quando è utilizzata con un controllo tab, una condizione corrisponde alla pagina Simulate e l’altra alla pagina DAQ. b. Inserite il VI AI Acquire Waveform che si trova nella palette Functions»Data Acquisition»Analog Input dello schema a blocchi. Questo VI acquisisce dati da un canale d’ingresso analogico sul dispositivo DAQ. Nota Se non avete un dispositivo DAQ o una DAQ Signal Accessory, utilizzate

il VI Demo Acquire Waveform che si trova nella palette Functions»User Libraries»Basic 2 Course dello schema a blocchi al posto del VI Acquire Waveform. Il VI Demo Acquire Waveform simula l’acquisizione dati da un canale d’ingresso analogico ad una frequenza di campionamento specificata e fornisce in uscita il numero di campioni specificato.

LabVIEW Corso Base II

2-12

 National Instruments Corporation


Lezione 2

Progettazione di pannelli frontali

c. Create una costante di cluster cliccando con il tasto destro del mouse sul tunnel della struttura Case e selezionando Create»Constant dal menu rapido. Questa costante passa in uscita i valori di default per il cluster di errore corrispondenti alla condizione DAQ. 8. Salvate il VI. 9. Osservate come avete aggiunto nuove funzionalità a questo VI senza complicare troppo il codice. L’utilizzo dei controlli tab è un modo molto efficiente per aggiungere nuovi oggetti sul pannello frontale per l’interfaccia utente e anche per aggiungere funzionalità allo schema a blocchi senza ingrandire troppo le finestre del pannello frontale e dello schema a blocchi. 10. Avviate il VI. Potete anche regolare i controlli del pannello frontale per vedere cambiare gli andamenti temporali e in frequenza. Passate dalla pagina Simulate a quella DAQ del controllo tab. 11. Arrestate e chiudete il VI quando avete finito.

Fine dell’esercitazione 2-2

 National Instruments Corporation

2-13

LabVIEW Corso Base II


Lezione 2

Progettazione di pannelli frontali

B. Utilizzo di cluster booleani come menu Potete utilizzare pulsanti booleani in un cluster per realizzare un menu per un’applicazione. Considerate per esempio un’applicazione in cui un operatore configura un sistema e può eseguire due test. Un possibile VI a menu per questa applicazione è il seguente.

Cluster di pulsanti etichettati (azione meccanica → latch when released) Ordine del cluster: (0) Pulsante Configure (1) Pulsante Test 1 (2) Pulsante Test 2

La funzione Cluster to Array converte il cluster booleano in una matrice booleana a tre elementi. Quindi ogni elemento del cluster rappresenta un elemento della matrice. La funzione Search 1D Array della palette Functions»Array ricerca nella matrice monodimensionale di valori booleani creata dalla funzione Cluster to Array il valore TRUE. Un valore TRUE per un qualsiasi elemento della matrice indica che avete cliccato su un pulsante del cluster. La funzione Search 1D Array restituisce l’indice del primo valore TRUE che trova nella matrice. Se non cliccate su un pulsante, Search 1D Array fornisce un valore dell’indice di –1. Se nessun pulsante viene premuto, viene eseguita la condizione –1, cioè nulla viene eseguito. Cliccando sul pulsante Configure si esegue la condizione 0, che potrebbe, per esempio, chiamare il subVI Configure. Cliccando sul pulsante Test 1 si esegue la condizione 1, che potrebbe chiamare il subVI Test 1 e cliccando sul pulsante Test 2 si esegue la condizione 2. Il ciclo While testa ripetutamente lo stato dei controlli booleani fino a quando cliccate sul pulsante Stop. Lo schema a blocchi del VI è il seguente.

LabVIEW Corso Base II

2-14

 National Instruments Corporation


Lezione 2

Progettazione di pannelli frontali

Vuoto. Search 1D Array fornisce –1 se non ci sono bottoni premuti

Richiama il subVI Configure

Richiama il subVI Test 1 Search 1D Array fornisce 1 se viene premuto il pulsante Test 1

Search 1D Array fornisce 0 se viene premuto il pulsante Configure

Richiama il subVI Test 2 Search 1D Array fornisce 2 se viene premuto il pulsante Test 2

Conversione di cluster Potete convertire un cluster in una matrice se tutti i componenti del cluster hanno lo stesso tipo di dati (per esempio, tutti booleani o tutti numerici). Con tale conversione, potete utilizzare le funzioni delle matrici per processare i componenti all’interno del cluster. La funzione Cluster to Array presente nelle palette Functions»Cluster e in Functions»Array converte un cluster di componenti dello stesso tipo in una matrice monodimensionale di dati dello stesso tipo.

L’esempio seguente mostra un cluster booleano a quattro componenti convertito in una matrice booleana a quattro elementi. L’indice di ogni elemento della matrice corrisponde all’ordine logico del componente nel cluster. Per esempio, Button 1 (componente 0) corrisponde al primo elemento (indice 0) della matrice, Button 2 (componente 1) al secondo elemento (indice 1), e così via.

 National Instruments Corporation

2-15

LabVIEW Corso Base II


Lezione 2

Progettazione di pannelli frontali

2

1

3 1 Pannello frontale

2 Pannello del cluster

3 Schema a blocchi

La funzione Array to Cluster (nelle palette Functions»Cluster e in Functions»Array) converte una matrice monodimensionale in un cluster in cui ogni componente del cluster è dello stesso tipo dell’elemento della matrice.

Nota Dovete cliccare con il tasto destro del mouse sull’icona della funzione per

impostare il numero di componenti nel cluster. Il numero di default dei componenti nel cluster di uscita è nove. Potete combinare il concetto di una macchina a stati con un cluster di menu booleano per fornire un potente sistema di menu. Per esempio, può darsi che dobbiate realizzare l’applicazione seguente, che può essere suddivisa in una serie di stati. Valore di stato Nome di stato Descrizione -1, Deafult No Event Menu booleano di controllo per determinare lo stato successivo

LabVIEW Corso Base II

0

Login

1

Configure

2

Acquire

2-16

Accesso dell’utente Configura l’acquisizione Acquisisce dati

Stato successivo Dipende dal pulsante premuto. Se non viene premuto alcun pulsante, lo stato successivo è No Event. No Event (0) Acquire (2) No Event (0)

 National Instruments Corporation


Lezione 2

Progettazione di pannelli frontali

L’esempio seguente rappresenta una macchina a stati per questa applicazione.

Il pannello frontale consiste in un cluster di pulsanti booleani, in cui ogni pulsante corrisponde ad uno stato nella macchina a stati. Nello stato –1 (stato No Event), il cluster di pulsanti booleani viene controllato per vedere se un pulsante è stato premuto. La funzione Search 1D Array fornisce l’indice del pulsante premuto (o –1 se non vengono premuti pulsanti) per determinare lo stato successivo da eseguire. Il valore di stato corrispondente viene caricato nel registro a scorrimento, e così all’iterazione successiva del ciclo While viene eseguito lo stato selezionato. In ognuno degli altri stati, il registro a scorrimento viene caricato con lo stato successivo da eseguire utilizzando una costante numerica. Normalmente questo è lo stato –1, e quindi il menu booleano verrà verificato di nuovo ma nello stato 1 (Configure) lo stato successivo è lo stato 2 (Acquire).

 National Instruments Corporation

2-17

LabVIEW Corso Base II


Lezione 2

Progettazione di pannelli frontali

Esercitazione 2-3

VI Menu

Obiettivo: Realizzare un sistema di menu per un’applicazione Esiste un insieme di dipendenze tra le diverse operazioni dell’applicazione da realizzare in questo corso. In molte circostanze, dopo aver eseguito una certa operazione, l’applicazione dovrebbe tornare nello stato “No Event”, in cui l’applicazione controlla un menu per vedere quale pulsante è stato premuto. Le dipendenze dell’applicazione possono essere descritte come una semplice macchina a stati, in cui ogni stato numerico porta ad uno stato successivo. La tabella seguente riassume questa serie di dipendenze. Valore di stato Nome di stato Descrizione -1, Default No Event Menu booleano di controllo per determinare lo stato successivo

0

Login

1 2

Acquire Analyze

3

View

4

Stop

Accesso dell’utente Acquisisce dati Analizza dati e possibilmente li salva su file Visualizza i file dati salvati Arresta il VI

Stato successivo Dipende dal pulsante premuto. Se non viene premuto alcun pulsante, lo stato successivo è No Event. No Event No Event No Event No Event No Event

In questa esercitazione realizzerete la macchina a stati da utilizzare in questa applicazione osservando il suo funzionamento. Nota Utilizzerete questo VI nella Lezione 5.

LabVIEW Corso Base II

2-18

 National Instruments Corporation


Lezione 2

Progettazione di pannelli frontali

Pannello frontale

1. Aprite un nuovo VI. 2. Realizzate il pannello frontale seguendo l’esempio precedente. Ogni pulsante nel cluster, quando viene premuto, attiva uno stato opportuno. Quando realizzate il pannello frontale, assicuratevi che il pulsante Login sia il cluster di ordine 0. Acquire Data è il cluster di ordine 1, Analyze & Present Data è il cluster di ordine 2, View Analysis File è il cluster di ordine 3 e Stop è il cluster di ordine 4. L’ordine del cluster del cluster dei menu determina il numero dello stato che verrà eseguito. Suggerimenti: y

Create per primo il pulsante con l’etichetta più grande.

y

Impostate l’azione meccanica su Latch When Released.

y

Utilizzate Copy e Paste per creare altri pulsanti.

y

Utilizzate Align e Distribute nella disposizione dei pulsanti.

 National Instruments Corporation

2-19

LabVIEW Corso Base II


Lezione 2

Progettazione di pannelli frontali

Schema a blocchi

1. Costruite lo schema a blocchi come mostrato in precedenza. a. Inserite nello schema a blocchi un ciclo While che si trova nella palette FunctionsStructures. In tal modo il VI continua a generare ed analizzare i dati fino a quando l’utente preme il pulsante Stop. Create il registro a scorrimento cliccando con il tasto destro del mouse sul bordo sinistro o destro del ciclo e selezionando Add Shift Register dal menu rapido.

LabVIEW Corso Base II

2-20

ď›™ National Instruments Corporation


Lezione 2

Progettazione di pannelli frontali

b. Inserite nello schema a blocchi una struttura Case che si trova nella palette Functions»Structures. Questa struttura genera gli stati per la macchina a stati. Aggiungete condizioni cliccando con il tasto destro del mouse sulla cornice della struttura Case. Assicuratevi di definire la condizione –1 come default. c. Inserite la funzione Wait Until Next ms Multiple che si trova nella palette Functions»Time & Dialog. Questa funzione determina l’esecuzione del ciclo While dieci volte al secondo. Create una costante cliccando con il tasto destro del mouse sul terminale d’ingresso e selezionando Create»Constant. d. Inserite la funzione Cluster to Array che si trova nella palette Functions»Cluster o Functions»Array. In questa esercitazione questa funzione converte il cluster di pulsanti booleani in una matrice di dati booleani. L’oggetto booleano del cluster di ordine 0 diventa l’elemento booleano di indice 0 della matrice, quello di ordine 1 del cluster diventa l’elemento di indice 1 della matrice e così via. e. Inserite la funzione Search 1D Array che si trova nella palette Functions»Array. In questa esercitazione, questa funzione ricerca nella matrice booleana fornita da Cluster to Array un valore TRUE. Un valore TRUE di un qualsiasi elemento indica che avete cliccato sul pulsante corrispondente. La funzione fornisce un valore –1 se non avete cliccato su un pulsante. f. Inserite la funzione One Button Dialog che si trova nella palette Functions»Time & Dialog. Utilizzerete quattro di queste funzioni per indicare quale stato è stato selezionato e caricato nel registro a scorrimento. 2. Salvate il VI come Menu.vi. 3. Avviate il VI, Quando cliccate sui pulsanti Login, Acquire Data, Analyze & Present Data o Data File View, compare una finestra di dialogo per indicare lo stato corrispondente in cui vi trovate. 4. Utilizzando l’esecuzione passo-passo e evidenziata, osservate come viene eseguito il VI. Notate che finché non premete un pulsante, la funzione Search 1D Array fornisce un valore –1, che determina l’esecuzione continua da parte del ciclo While dello stato -1. Una volta che viene premuto un pulsante, comunque, l’indice dei dati booleani viene usato per determinare lo stato successivo da eseguire. Notate come gli stati del VI corrispondano agli stati nella tabella precedente l’esercitazione. Nelle ultime esercitazioni sostituirete i VI che avete creato per le funzioni One Button Dialog per realizzare l’applicazione.

 National Instruments Corporation

2-21

LabVIEW Corso Base II


Lezione 2

Progettazione di pannelli frontali

5. Cliccate sul pulsante Stop per arrestare l’esecuzione. 6. Chiudete il VI quando avete finito.

Fine dell’esercitazione 2-3

LabVIEW Corso Base II

2-22

 National Instruments Corporation


Lezione 2

Progettazione di pannelli frontali

Esercitazione 2-4 VI Cluster Conversion Example (Opzionale) Obiettivo: Esaminare un VI che utilizza cluster per processare dati.

Esaminerete un VI che utilizza cluster per processare dati. Il VI rappresenta un cluster contenente quattro pulsanti etichettati. Il VI tiene traccia del numero di volte che avete cliccato su ogni pulsante.

Pannello frontale

1. Aprite il VI Cluster Conversion Example che si trova in c:\exercises\LV Basics 2.

Schema a blocchi

La condizione False è vuota e serve solo per passare il cluster dal registro a scorrimento di sinistra a quello di destra. 2. Aprite ed esaminate lo schema a blocchi. 3. Avviate il VI. Cliccate su un pulsante. L’indicatore digitale corrispondente dovrebbe incrementarsi ogni volta che cliccate su un pulsante. 4. Chiudete il VI. Non salvate le modifiche.

Fine dell’esercitazione 2-4

 National Instruments Corporation

2-23

LabVIEW Corso Base II


Lezione 2

Progettazione di pannelli frontali

C. Nodi Proprietà In alcune applicazioni, potreste aver bisogno di modificare da programma l’aspetto degli oggetti del pannello frontale in risposta a certi ingressi. Per esempio, se un utente inserisce una password non valida, potreste causare l’accensione di un LED rosso. Un altro esempio potrebbe essere di cambiare il colore della traccia su un grafico. Quando i punti si trovano al di sopra di una certa soglia, potreste attivare una traccia rossa invece che verde. Anche ridimensionare gli oggetti del pannello frontale, nascondere parti del pannello frontale e aggiungere cursori al grafico può essere fatto da programma utilizzando i Nodi Proprietà. I Nodi Proprietà in LabVIEW sono molto potenti e consentono molti utilizzi. Questo corso copre solo un utilizzo dei Nodi Proprietà per modificare da programma l’aspetto e le caratteristiche funzionali degli oggetti del pannello frontale. Potete impostare proprietà come i colori del display, la visibilità, la posizione, le dimensioni, il lampeggiamento, le stringhe di menu, le scale dei grafici, i cursori dei grafici e molto altro. Fate riferimento a Help»Contents and Index in LabVIEW per ulteriori informazioni sui Nodi Proprietà.

Creazione di Nodi Proprietà Create Nodi Proprietà selezionando l’opzione Create»Property Node dal menu rapido di un oggetto del pannello frontale o dal suo terminale sullo schema a blocchi. Selezionando Create»Property Node si crea un nuovo nodo sullo schema a blocchi vicino al terminale dell’oggetto. Se l’oggetto ha una propria etichetta, il Nodo Proprietà ha la stessa etichetta. Potete modificare l’etichetta dopo aver creato il nodo. Potete creare un qualsiasi numero di Nodi Proprietà per un oggetto del pannello frontale. Siccome ci sono molte proprietà differenti per gli oggetti del pannello frontale, copriremo soltanto le proprietà comuni. Selezionate Help»Contents and Index per trovare informazioni su una proprietà particolare.

Utilizzo dei Nodi Proprietà Quando create un Nodo Proprietà, esso inizialmente possiede un terminale che rappresenta una proprietà che potete modificare per l’oggetto corrispondente del pannello frontale. Utilizzando questo terminale sul Nodo Proprietà, potete sia impostare (scrivere) la proprietà che leggere lo stato corrente di quella proprietà. Per esempio, se create un Nodo Proprietà per un controllo digitale, esso appare sullo schema a blocchi con la proprietà Visible mostrata nel suo terminale. Una piccola freccia appare sul lato destro di quel terminale, ad indicare che potete leggere un valore dalla proprietà Visible del controllo digitale.

LabVIEW Corso Base II

2-24

 National Instruments Corporation


Lezione 2

Progettazione di pannelli frontali

Potete modificarla in una proprietà di scrittura cliccando con il tasto destro del mouse sul nodo e selezionando Change To Write dal menu rapido. Collegando un FALSE booleano a quel terminale si provocherà la sparizione del controllo digitale dal pannello frontale quando il Nodo Proprietà riceve i dati. Collegando un TRUE si determina la ricomparsa del controllo.

Potete leggere lo stato corrente di una proprietà cliccando con il tasto destro del mouse sul terminale Nodo Proprietà e selezionando Change To Read. Quando viene chiamato il Nodo Proprietà, porrà in uscita un booleano TRUE se il controllo è visibile o un booleano FALSE se è invisibile. Dal terminale sul Nodo Proprietà, potete selezionare le proprietà cliccando sul nodo con lo strumento Modifica, mostrato a sinistra, e selezionando la proprietà desiderata dal menu rapido. Potete leggere o impostare più di una proprietà sullo stesso nodo allargando il Nodo Proprietà. Utilizzando lo strumento Posiziona, mostrato a sinistra, cliccate sull’angolo inferiore del Nodo Proprietà e trascinate l’angolo verso il basso per allargare il nodo. Quando allargate il nodo, aggiungete terminali. Potete quindi associare ogni terminale del Nodo Proprietà con una proprietà dal suo menu rapido.

Alcune proprietà sono cluster. Questi cluster contengono diverse proprietà che voi potete separare utilizzando la funzione Unbundle che si trova nella palette Functions»Cluster. Per scrivere su queste proprietà è necessaria la funzione Bundle:

Lettura di proprietà raggruppate

Scrittura di proprietà raggruppate

 National Instruments Corporation

2-25

LabVIEW Corso Base II


Lezione 2

Progettazione di pannelli frontali

Per accedere alle proprietà raggruppate, selezionate l’opzione All Elements dal menu rapido della proprietà. Per esempio, potete accedere a tutti gli elementi nella proprietà Position selezionando Position»All Elements o potete accedere ad un singolo elemento da quel gruppo.

Ordine di esecuzione di Nodi Proprietà I terminali del Nodo Proprietà vengono eseguiti dall’alto verso il basso. Nell’esempio seguente, nel Nodo Proprietà di un grafico di forme d’onda, il grafico viene dapprima reso visibile. Quindi Plot 0 viene impostato come traccia attiva, il suo colore è rosso e il nome della traccia nella legenda viene aggiornato. Infine, Plot 1 viene impostato come traccia attiva, il suo colore è il verde e il nome della traccia nella legenda viene cambiato.

Ordine di esecuzione

Utilizzo della finestra Context Help Utilizzate la finestra di LabVIEW Context Help e Help»Contents and Index per trovare descrizioni, tipi di dati e valori accettabili per i Nodi Proprietà. Con la finestra di Context Help attiva, passate il cursore sopra i terminali del Nodo Proprietà per visualizzare informazioni. L’esempio seguente mostra l’help per una singola proprietà ed un cluster con diverse proprietà.

LabVIEW Corso Base II

2-26

 National Instruments Corporation


Lezione 2

Progettazione di pannelli frontali

Proprietà comuni Ci sono molte proprietà disponibili in LabVIEW per i vari oggetti del pannello frontale. Questa sezione descrive le proprietà Visible, Disable, Key Focus, Blink, Position, Bounds e Value, che sono comuni a tutti gli oggetti del pannello frontale. Vengono inoltre introdotti alcuni Nodi Proprietà per alcuni tipi particolari di controlli e indicatori.

Proprietà Visible La proprietà Visible, mostrata a sinistra, imposta o legge la visibilità di un oggetto del pannello frontale. L’oggetto associato è visibile quando è TRUE, nascosto quando è FALSE. Esempio di collegamentoImpostate un controllo digitale su uno stato invisibile. Un booleano TRUE rende visibile il controllo, come mostrato. Schema a blocchi

Pannello frontale Visible = TRUE

Visible = FALSE

Proprietà Disabled La proprietà Disabled, mostrata a sinistra, imposta o legge lo stato di accesso dell’utente ad un oggetto. Un valore di 0 abilita un oggetto affinché l’utente possa lavorarci. Un valore di 1 disabilita l’oggetto, impedendone il funzionamento. Un valore di 2 disabilita e fa diventare grigio l’oggetto. Esempio di collegamentoDisabilitate l’accesso dell’utente al controllo digitale. Il controllo non cambia aspetto quando viene disabilitato.

 National Instruments Corporation

2-27

LabVIEW Corso Base II


Lezione 2

Progettazione di pannelli frontali

Esempio di collegamentoDisabilitate l’accesso dell’utente al controllo e fatelo diventare grigio

Proprietà Key Focus La proprietà Key Focus, mostrata a sinistra, imposta o legge il key focus di un oggetto del pannello frontale. Quando è TRUE, il cursore è attivo nell’oggetto associato. Nella maggior parte dei controlli, potete inserire valori nel controllo digitandoli con la tastiera. Potete anche impostare il key focus sul pannello frontale premendo il tasto <Tab> mentre si è in esecuzione o premendo il tasto associato al controllo (assegnato utilizzando l’opzione Key Navigation). Esempio di collegamentoAttivate sul controllo digitale il key focus. Potete allora inserire un nuovo valore nel controllo senza selezionarlo con il cursore.

Proprietà Blinking La proprietà Blinking, mostrata a sinistra, legge o imposta lo stato di lampeggiamento di un oggetto. Impostando questa proprietà su TRUE, un oggetto inizierà a lampeggiare. Potete impostare la frequenza di lampeggiamento e i colori selezionando Tools»Options e quindi Front Panel e Colors dal menu a tendina. Quando questa proprietà è impostata su FALSE, l’oggetto smette di lampeggiare. Esempio di collegamentoAbilitate il lampeggiamento di un controllo digitale.

1 1 Schema a blocchi

2 2 Pannello frontale: Normale

3 3 Pannello frontale: lampeggiante

Proprietà Value La proprietà Value, mostrata a sinistra, legge o imposta il valore corrente di un oggetto. Quando impostate la proprietà Value in scrittura, essa scrive il valore collegato all’oggetto sia nel caso di un controllo che di un indicatore.

LabVIEW Corso Base II

2-28

 National Instruments Corporation


Lezione 2

Progettazione di pannelli frontali

Quando impostate la proprietà Value in lettura, essa legge il valore collegato all’oggetto sia nel caso di un controllo che di un indicatore. L’esempio seguente mostra un valore di pi greco scritto su un controllo numerico e il valore all’interno di una stringa scritto su un’altra stringa.

Proprietà Position La proprietà Position, mostrata a sinistra, imposta o legge la posizione dell’angolo superiore sinistro di un oggetto sul pannello frontale. La posizione è determinata in unità di pixel relative all’angolo superiore sinistro del panello frontale. Questa proprietà consiste in un cluster di due interi di tipo long senza segno. Il primo elemento nel cluster (Left) è la posizione del bordo sinistro del controllo relativamente al bordo sinistro del pannello frontale, e il secondo elemento nel cluster (Top) è la posizione del bordo superiore del controllo relativamente al bordo superiore del pannello frontale. Esempio di collegamentoFate cambiare posizione al controllo digitale sul pannello frontale.

 National Instruments Corporation

2-29

LabVIEW Corso Base II


Lezione 2

Progettazione di pannelli frontali

Proprietà Bounds La proprietà Bounds, mostrata a sinistra, legge i limiti di un oggetto sul pannello frontale in unità di pixel. Il valore include il controllo e tutte le sue parti, inclusa l’etichetta, la legenda, la scala e così via. Questa proprietà consiste in un cluster di due interi di tipo long senza segno. Il primo elemento nel cluster (Width) è la larghezza dell’oggetto in pixel, e il secondo (Height) l’altezza dell’oggetto in pixel. Questa è una proprietà di sola lettura. Essa non ridimensiona un controllo o un indicatore del pannello frontale. Alcuni oggetti hanno altre proprietà per il ridimensionamento, come la proprietà Plot Area Size per i grafici. Esempio di collegamentoDeterminate i limiti di un controllo digitale.

Proprietà Numeric: Format and Precision La proprietà Format and Precision, mostrata a sinistra, imposta o legge il formato (tipo di notazione) e precisione (numero di cifre visualizzate dopo il punto decimale) degli oggetti numerici del pannello frontale. L’ingresso è un cluster di due interi di tipo long senza segno. Il primo elemento imposta il formato e il secondo imposta la precisione. La proprietà Format può assumere uno dei seguenti valori interi: 0 - Notazione decimale 1 - Notazione scientifica 2 - Notazione ingegneristica 3 - Notazione binaria 4 - Notazione ottale 5 - Notazione esadecimale 6 - Notazione tempo relativo Esempio di collegamentoImpostate il formato del controllo digitale sulla notazione scientifica e 4 cifre di precisione.

LabVIEW Corso Base II

2-30

 National Instruments Corporation


Lezione 2

Progettazione di pannelli frontali

Proprietà booleana: Strings [4] La proprietà Strings [4], mostrata a sinistra, imposta o legge le etichette su un controllo booleano. L’ingresso è una matrice di quattro stringhe che corrispondono agli stati False, True, True Tracking e False Tracking. True and False: gli stati On e Off dell’oggetto booleano. True e False Tracking: livelli di transizione temporanea tra stati booleani. True Tracking è lo stato di transizione quando l’oggetto booleano passa da True a False. Il tracking si applica solo ad oggetti booleani aventi le azioni meccaniche Switch When Released e Latch When Released. Queste azioni meccaniche sono in uno stato transizionale fino a quando rilasciate il mouse. Le stringhe di testo True Tracking e False Tracking vengono visualizzate durante la transizione. Esempio di collegamentoImpostate le stringhe del display per il controllo Switch sulle scelte Stop, Run, Stop? E Run?.

Proprietà String: Display Style La proprietà Display Style, mostrata a sinistra, imposta o legge il display di un controllo o indicatore di stringa. Un intero di tipo long senza segno determina il modo del display. 0 - Normal Display 1 - ‘\’ Codes Display 2 - Password Display 3 - Hex Display

 National Instruments Corporation

2-31

LabVIEW Corso Base II


Lezione 2

Progettazione di pannelli frontali

Esempio di collegamentoMostrate il testo nel controllo di stringa negli altri modi.

LabVIEW Corso Base II

2-32

ď›™ National Instruments Corporation


Lezione 2

Progettazione di pannelli frontali

Esercitazione 2-5 VI Property Node Exercise Obiettivo:

Realizzare un VI che utilizzi i Nodi ProprietĂ per modificare le caratteristiche comuni degli oggetti del pannello frontale. Realizzerete un VI che da programma modifica le proprietĂ position, disabled e color degli oggetti del pannello frontale.

Pannello Frontale

1. Aprite un nuovo VI e realizzate il pannello frontale mostrato sopra.

Schema a blocchi

ď›™ National Instruments Corporation

2-33

LabVIEW Corso Base II


Lezione 2

Progettazione di pannelli frontali

2. Aprite e realizzate lo schema a blocchi mostrato precedentemente utilizzando i componenti seguenti. a. Inserite il ciclo While che si trova nella palette Functions»Structures. Questo determina l’esecuzione del VI fino a quando l’utente preme il pulsante Stop. Cliccate con il tasto destro del mouse sul terminale condizionale e selezionate Stop If True. b. Inserite la funzione Wait Until Next ms Multiple che si trova nella palette Functions»Time & Dialog. Questa funzione determina l’esecuzione del ciclo While una volta al secondo. Create la costante cliccando con il tasto destro del mouse sul terminale d’ingresso e selezionando Create»Constant. c. Inserite la funzione Random Number (0-1) che si trova nella palette Functions»Numeric. Essa crea un numero casuale tra zero e uno. d. Inserite la funzione Multiply che si trova nella palette Functions»Numeric. Essa moltiplica due numeri e viene usata qui per riportare il numero casuale tra 0 e 10. e. Inserite la funzione Greater? che si trova nella palette Functions»Comparison. Essa confronta due valori, in questo caso il valore casuale e quello limite e fornisce True se il valore casuale è più grande di quello limite. Altrimenti fornisce False. f. Inserite la funzione Select che si trova nella palette Functions»Comparison. Utilizzerete due di queste funzioni. Questa funzione prende un ingresso booleano ed emette il valore superiore se il booleano è True e il valore inferiore se il booleano è False. g. Inserite la costante Color Box che si trova nella palette Functions»Numeric»Additional Numeric Constants. Questa costante viene utilizzata per colorare gli oggetti del pannello attraverso il Nodo Proprietà. Avete bisogno di due di queste costanti. Utilizzate lo strumento modifica per selezionare il colore e rendere una rossa e l’altra blu. h. Create il Nodo Proprietà per il Tank. Per creare questo nodo, cliccate con il tasto destro del mouse sul terminale Tank e dal menu rapido. selezionate Create»Property Node Ridimensionate questo nodo trascinando l’angolo con lo strumento Posiziona per mostrare tre terminali. Selezionate le proprietà indicate cliccando con il tasto destro del mouse su ogni terminale e selezionando la voce dal menu Properties. Cliccate con il tasto destro su quel nodo e selezionate Change All To Write dal menu. i. Inserite la funzione Bundle che si trova nella palette Functions»Cluster. Questa funzione unisce le posizioni left e top nella proprietà Position del serbatoio.

LabVIEW Corso Base II

2-34

 National Instruments Corporation


Lezione 2

Progettazione di pannelli frontali

j. Create il Nodo Proprietà per il booleano. Per creare questo nodo, cliccate con il tasto destro del mouse sul terminale Boolean e selezionate Create»Property Node dal menu rapido. Selezionate la proprietà Disabled cliccando con il tasto destro del mouse sul terminale e selezionandola dal menu Properties. Cliccate con il tasto destro su quel nodo e selezionate Change To Write dal menu rapido. k. Create il Nodo Proprietà per la stringa. Per creare questo nodo, cliccate con il tasto destro del mouse sul terminale String e selezionate Create»Property Node dal menu rapido. Selezionate la proprietà Disabled cliccando con il tasto destro del mouse sul terminale e selezionandola dal menu Properties. Cliccate con il tasto destro su quel nodo e selezionate Change To Write dal menu rapido. l. Create il Nodo Proprietà per il limite. Per creare questo nodo, cliccate con il tasto destro del mouse sul terminale Limit e selezionate Create»Property Node dal menu rapido. Selezionate la proprietà Disabled cliccando con il tasto destro del mouse sul terminale e selezionandola dal menu Properties. Cliccate con il tasto destro su quel nodo e selezionate Change To Write dal menu rapido. m. Create il Nodo Proprietà per la posizione verticale del serbatoio. Per creare questo nodo, cliccate con il tasto destro del mouse sul terminale Tank Vertical Position e selezionate Create»Property Node dal menu rapido. Selezionate la proprietà Disabled cliccando con il tasto destro del mouse sul terminale e selezionandola dal menu Properties. Cliccate con il tasto destro su quel nodo e selezionate Change To Write dal menu rapido. n. Create il Nodo Proprietà per la posizione orizzontale del serbatoio. Per creare questo nodo, cliccate con il tasto destro del mouse sul terminale Tank Horizontal Position e selezionate Create»Property Node dal menu rapido. Selezionate la proprietà Disabled cliccando con il tasto destro del mouse sul terminale e selezionandola dal menu Properties. Cliccate con il tasto destro su quel nodo e selezionate Change To Write dal menu rapido 3. Salvate questo VI come Property Node Exercise.vi. 4. Tornate al pannello frontale ed avviate il VI. Dovrebbero succedere molte cose. 5. Innanzitutto quando nuovi numeri casuali vengono generati e scritti sul serbatoio, il colore di riempimento è rosso se il numero casuale è più grande del valore limite e diventa blu se è inferiore. 6. I due cursori cambiano la posizione del serbatoio sul pannello. Spostateli e vedete come si sposta il serbatoio.

 National Instruments Corporation

2-35

LabVIEW Corso Base II


Lezione 2

Progettazione di pannelli frontali

7. L’interruttore Disable controlla se potete modificare i valori. Portate l’interruttore Disable su True e tutti gli oggetti del pannello eccetto Disable e il pulsante Stop diventano grigi e non potete modificarne i valori. 8. Arrestate e chiudete il VI quando avete finito.

Fine dell’esercitazione 2-5

LabVIEW Corso Base II

2-36

 National Instruments Corporation


Lezione 2

Progettazione di pannelli frontali

D. Proprietà dei grafici I Nodi Proprietà aumentano notevolmente la flessibilità da programma dei grafici. Potete controllare la maggior parte delle caratteristiche dei grafici con i Nodi Proprietà. Alcune di queste proprietà sono il colore della traccia, informazioni sulle scale X e Y, la visibilità delle legende e della palette, le dimensioni dell’area di rappresentazione e i cursori.

Legenda della rappresentazione

Palette del grafico

Legenda delle scale

Legende dei cursori

Potete avere molte opzioni di scala per i grafici. Con i Nodi Proprietà, potete impostare o leggere le informazioni di scala per le X e le Y. Per ogni asse il VI può leggere o impostare i valori minimo, massimo e di incremento. Potete anche utilizzare i Nodi Proprietà per impostare o leggere da programma i colori della traccia e dello sfondo e i colori della griglia X e Y. Potete utilizzare questa possibilità per impostare i colori della traccia e dello sfondo in funzione delle condizioni del programma come ad esempio valori out of range o di errore. Per cambiare le dimensioni di un grafico, utilizzate la proprietà Plot Area»Size. Se volete che una traccia particolare appaia in una piccola finestra durante un’applicazione ma appaia più grande più avanti, potete utilizzare questa proprietà insieme con altre proprietà che modificano le dimensioni di un pannello di VI. Utilizzando i Nodi Proprietà, avete accesso alle informazioni che i cursori forniscono sui grafici. Utilizzate i cursori per spostare un selettore di grafico sulla traccia. Un cursore può essere bloccato sulla traccia o può muoversi sulla superficie di rappresentazione. I valori provenienti da ciascun cursore vengono forniti su un display opzionale del pannello frontale.

 National Instruments Corporation

2-37

LabVIEW Corso Base II


Lezione 2

Progettazione di pannelli frontali

I Nodi Proprietà offrono un modo per impostare o leggere da programma la posizione del cursore sul grafico, consentendo all’utente un accesso dai cursori del VI.

Proprietà X (o Y) Range La proprietà X (o Y) Range, mostrata a sinistra, imposta o legge l’intervallo e l’incremento degli assi del grafico. La proprietà accetta un cluster di cinque valori numerici, in funzione del tipo di grafico: valore minimo dell’asse X, valore massimo dell’asse X, incrementi maggiori e minori tra i marcatori dell’asse X e il valore di inizio della scala. Per creare questa proprietà, selezionate X Scale»Range»All Elements dall’elenco delle proprietà. Se non c’è abbastanza spazio per visualizzare tutti i valori incrementali che avete specificato, LabVIEW selezionerà un valore incrementale alternativo. Esempio di collegamentoImpostate l’intervallo dell’asse X tra 0 e 50 con l’incremento maggiore dell’asse di 10, quello minimo di 1 e un valore iniziale di zero.

Proprietà Active Plot e Plot Color Le proprietà mostrate a sinistra impostano o leggono la traccia attiva (la traccia per cui le proprietà relative vengono impostate o lette) e il colore della traccia attiva. Active Plot è un intero corrispondente alla traccia desiderata e Plot Color è un intero che rappresenta un colore. La proprietà Plot Color si trova in Plot»Plot Color dall’elenco delle proprietà. Esempio di collegamentoImpostate il colore della traccia attiva utilizzando una costante Color Box (impostata sul rosso in questo esempio). Quando selezionate la traccia attiva, il terminale Active Plot deve precedere (appare prima) il terminale Plot Color.

LabVIEW Corso Base II

2-38

 National Instruments Corporation


Lezione 2

Progettazione di pannelli frontali

Proprietà Active Cursor, Cursor Position e Cursor Index Le proprietà mostrate a sinistra impostano o leggono il cursore attivo, la sua posizione nel grafico e l’indice (posizione dell’asse X) nella traccia in cui risiede il cursore. La proprietà Active Cursor accetta un intero corrispondente al cursore desiderato quando c’è più di un cursore sul grafico. Cursor Position consiste in un cluster di due numeri a virgola mobile che rappresentano le posizioni X e Y sulla traccia. Per creare la proprietà Cursor Position, selezionate Cursor»Cursor Position»All Elements. Cursor Index accetta un intero corrispondente ad un elemento nella matrice (traccia). Per accedere alla proprietà Cursor Index, selezionate Cursor»Cursor Index. Esempio di collegamentoInserite un cursore nella posizione (55.5, 34.8). Quando selezionate il cursore, il terminale Active Cursor deve precedere il terminale Cursor Position. Siccome il nodo viene eseguito dall’alto verso il basso, potete impostare un’altra posizione di cursore aggiungendo un altro insieme di proprietà Active Cursor e Cursor Position a questo nodo.

Plot Area»Size Property Per leggere o modificare le dimensioni di un grafico, inviate nuovi valori di Width e Height alla proprietà Plot Area Size. Width e Height sono espressi in pixel. Esempio di collegamentoRidimensionate un grafico per aumentare del 25% l’altezza e la larghezza.

Dopo l’esecuzione Prima dell’esecuzione

 National Instruments Corporation

2-39

LabVIEW Corso Base II


Lezione 2

Progettazione di pannelli frontali

Esercitazione 2-6 VI Temperature Limit Obiettivo:

Creare un VI che utilizzi i Nodi Proprietà per cancellare un grafico e avvisare l’utente se i dati superano un limite. Completerete la realizzazione di un VI che utilizza i Nodi Proprietà per eseguire le azioni seguenti: y

Impostare il valore delta X del grafico sulla frequenza di campionamento in secondi.

y

Cancellare il grafico affinché inizialmente non contenga dati.

y

Modificare il colore di una traccia se i dati superano un certo valore.

y

Far lampeggiare un indicatore di allarme se i dati superano un certo valore.

Pannello frontale

1. Aprite il VI Temperature Limit che si trova nella directory c:\exercises\LV Basics 2. Il pannello frontale e parte dello schema a blocchi sono già stati realizzati.

LabVIEW Corso Base II

2-40

 National Instruments Corporation


Lezione 2

Progettazione di pannelli frontali

Schema a blocchi

2. Modificate il VI in maniera tale che imposti il valore delta X sulla frequenza di campionamento e cancelli il grafico della temperatura prima dell’avvio. Mentre il VI acquisisce i dati, la linea “High Limit” dovrebbe diventare rossa quando la temperatura supera il valore limite e il LED Out of Range dovrebbe lampeggiare. a. Nella struttura Sequence, create un Nodo Proprietà per il grafico Temperature che ha due terminali. Un terminale dovrebbe essere la proprietà multiplier, X Scale»Offset and Multiplier»Multiplier e l’altro terminale dovrebbe essere la proprietà History Data. Per cancellare un grafico dallo schema a blocchi, inviate una matrice di dati vuota alla proprietà History Data. Per fare questo, cliccate con il tasto destro del mouse sulla proprietà e selezionate Create»Constant. Assicuratevi che la costante della matrice sia vuota. b. Nella struttura Case all’interno del ciclo While, create un Nodo Proprietà per il grafico di temperatura che abbia due terminali. Il terminale superiore dovrebbe essere la proprietà Active Plot e quello inferiore la proprietà Plot Color, Plot»Plot Color. Avete bisogno di queste proprietà in entrambe le condizioni della struttura Case. La traccia High Limit è plot 1, quindi impostate la proprietà Active Plot su uno prima di impostare la proprietà Plot Color. Se i dati superano High Limit, impostate il colore su rosso. Altrimenti su giallo. Utilizzate una costante Color Box per inviare il valore del colore su questa proprietà. c. Cliccate con il tasto destro sull’indicatore Out of Range per creare un Nodo Proprietà Blink. L’indicatore dovrebbe lampeggiare quando la temperatura supera High Limit.

 National Instruments Corporation

2-41

LabVIEW Corso Base II


Lezione 2

Progettazione di pannelli frontali

3. Salvate il VI con lo stesso nome. 4. Avviate il VI per avere conferma che funziona correttamente.

Fine dell’esercitazione 2-6

LabVIEW Corso Base II

2-42

ď›™ National Instruments Corporation


Lezione 2

Progettazione di pannelli frontali

Esercitazione 2-7 VI Analyze & Present Data Obiettivo: Utilizzare i Nodi Proprietà con i cursori dei grafici.

Creerete un VI che utilizza i cursori del grafico per selezionare un sottoinsieme di dati per l’analisi. In un esercizio successivo realizzerete un subVI che salva i risultati su disco. Utilizzerete anche la proprietà Value per inizializzare un indicatore. Nota Utilizzerete questo VI nel progetto della Lezione 5.

Pannello frontale

1. Aprite il VI Analyze & Present Data che si trova nella directory c:\exercises\LV Basics 2. Il pannello frontale di questo VI è già realizzato. Voi completerete lo schema a blocchi. Utilizzerete i due cursori indicati per selezionare un sottoinsieme di dati da analizzare. Un cursore può muoversi liberamente o può essere bloccato sulla traccia. Potete controllare questa azione utilizzando il pulsante Lock Control che si trova sul lato destro del display del cursore. Movimento vincolato sui punti della traccia. Movimento libero nell’area di rappresentazione. In questa esercitazione, utilizzate i cursori vincolati sulla traccia. Utilizzate i Nodi Proprietà per impostare inizialmente gli indici del cursore all’inizio e alla fine della matrice di dati quando si avvia il VI. Quando un utente clicca sul pulsante Analyze Selected Subset, leggete la posizione di ogni cursore e utilizzate questa informazione per trovare i valori DC, RMS, di frequenza, di ampiezza e di fase del sottoinsieme di dati.

 National Instruments Corporation

2-43

LabVIEW Corso Base II


Lezione 2

Progettazione di pannelli frontali

Schema a blocchi

2. Completate lo schema a blocchi precedente. Per creare i Nodi Proprietà, cliccate con il tasto destro del mouse sui terminali Data e Analysis Result e selezionate Create»Property Node dal menu rapido. Utilizzate lo strumento Posiziona per ridimensionare il Nodo Proprietà affinché abbia un numero sufficiente di terminali. Potete scegliere la proprietà cliccando con il tasto destro del mouse sul nodo creato per ultimo e selezionando la proprietà dal menu Proprietà. La proprietà Cursor Index si trova in Cursor»Cursor Index. Inserite la funzione Array Subset che si trova nella palette Functions»Array. In questa esercitazione, questa funzione estrae l’insieme di dati da analizzare. Inserite la funzione Max & Min che si trova nella palette Functions»Comparison. In questa esercitazione, questa funzione determina il primo e l’ultimo indice per trovare il sottoinsieme di dati da analizzare.

LabVIEW Corso Base II

2-44

 National Instruments Corporation


Lezione 2

Progettazione di pannelli frontali

Inserite il VI Basic Averaged DC-RMS che si trova nella palette Functions»Analyze»Waveforms Measurements. Il VI prende la forma d’onda d’ingresso e calcola i valori DC e RMS. Inserite il VI Extract Single Tone Information che si trova nella palette Functions»Analyze»Waveforms Measurements. Il VI prende la forma d’onda d’ingresso, calcola la risposta in frequenza e fornisce un singolo tono relativo all’ampiezza superiore. LabVIEW fornisce l’ampiezza, la frequenza e i valori di fase di quel singolo tono. 3. Salvate il VI con lo stesso nome. 4. Avviate il VI. Spostate i cursori lungo il grafico per selezionare un sottoinsieme di dati da analizzare e quindi cliccate sul pulsante Analyze Selected Subset. Il risultato appare nel cluster Analysis Results. Quando avete finito, cliccate sul pulsante Return. 5. Chiudete il VI quando avete finito.

Fine dell’esercitazione 2-7

 National Instruments Corporation

2-45

LabVIEW Corso Base II


Lezione 2

Progettazione di pannelli frontali

E. Riferimenti al controllo Nelle due sezioni precedenti avete utilizzato i Nodi Proprietà per modificare da programma le caratteristiche degli oggetti del pannello frontale. Se state realizzando un grande VI che contiene molti Nodi Proprietà o state utilizzando la stessa proprietà per diversi controlli e indicatori, potreste anche pensare di inserire il Nodo Proprietà in un subVI ed utilizzare i riferimenti al controllo per accedere a quel nodo. Un Control Reference è un numero riferito ad un controllo specifico. Questa sezione mostra solo un modo di utilizzo di questi oggetti versatili. Fate riferimento ai manuali in LabVIEW per ulteriori informazioni sui riferimenti al controllo.

Creazione di riferimenti al controllo Create un riferimento al controllo per un oggetto del pannello frontale sia cliccando con il tasto destro del mouse sull’oggetto sia sul terminale di quell’oggetto e selezionando Create»Reference dal menu rapido. Quindi collegate questo Control Reference ad un subVI che contiene i Nodi Proprietà. Comunque, il subVI deve contenere un terminale che sia Control Refnum. Create il Control Refnum selezionando Controls»Refnum come segue.

Utilizzo dei riferimenti al controllo Lo schema a blocchi seguente del subVI mostra come potete utilizzare un riferimento al controllo per impostare molte delle proprietà di un oggetto del pannello frontale.

I Nodi Proprietà utilizzano cluster di errore come molte delle funzioni di I/O in LabVIEW e quindi potete utilizzare i sistemi di gestione dell’errore per tenere traccia delle condizioni di errore. Il VI che chiama questo subVI può utilizzarlo per modificare le proprietà di ogni tipo di controllo. L’esempio seguente mostra il subVI che disabilita un numerico e imposta un oggetto booleano come key focus.

LabVIEW Corso Base II

2-46

 National Instruments Corporation


Lezione 2

Progettazione di pannelli frontali

PiĂš avanti realizzerete un subVI che modifica la proprietĂ disabled per una matrice di controlli utilizzando i riferimenti al controllo.

ď›™ National Instruments Corporation

2-47

LabVIEW Corso Base II


Lezione 2

Progettazione di pannelli frontali

Esercitazione 2-8 VI Disable Controls e Control Refs Example Obiettivo:

Realizzare un VI che utilizzi i riferimenti al controllo per accedere ai Nodi Proprietà da un sub VI. Inizierete con il VI Property Node Exercise che avete realizzato nell’esercitazione 2-5. Costruirete un subVI che accede ad una matrice di riferimenti di controllo ed assegna la proprietà Disabled. Quindi modificherete il VI Property Node Exercise per utilizzare il subVI piuttosto che i Nodi Proprietà originali.

Nota Utilizzerete questo VI nel progetto della Lezione 5.

Pannello frontale

1. Aprite un nuovo VI e realizzate il pannello frontale precedente. Schema a blocchi

2. Aprite e costruite lo schema a blocchi precedente utilizzando i componenti seguenti: a. Inserite un ciclo For che si trova nella palette Functions»Structures. Il ciclo For viene utilizzato per l’autoindicizzazione attraverso la matrice di refnum di controllo in maniera tale che ogni refnum e proprietà sia gestito separatamente. b. Inserite un Nodo Proprietà che si trova nella palette Functions»Application Control. Utilizzerete questo Nodo Proprietà come controllo generico. Quando collegate il Refnum Array al terminale di ingresso di refnum, la funzione cambia leggermente come si vede dall’esempio seguente:

LabVIEW Corso Base II

2-48

 National Instruments Corporation


Lezione 2

Progettazione di pannelli frontali

c. Cliccate con il tasto destro del mouse sul terminale Property e selezionate Properties»Disabled. Cliccate nuovamente con il tasto destro sul terminale e selezionate Change To Write. d. Inserite la funzione Select che si trova nella palette Functions»Comparison. Questa funzione accetta un ingresso booleano ed emette un valore superiore di 0 (enabled) se il booleano è True e un valore inferiore di 2 (disabled) se il booleano è False. e. Inserite una costante numerica che si trova nella palette Functions»Numeric. Avete bisogno di due di queste costanti una con il valore di 0 e l’altra di 2 per la funzione Select. 3. Salvate il VI come Disabled Controls.vi. 4. Tornate al pannello frontale. Ora realizzerete per il VI un’icona e il riquadro connettori come mostrato di seguito.

5. Salvate e chiudete questo VI. Ora realizzerete un VI chiamante per questo subVI.

6. Aprite il VI Property Node Exercise che avete realizzato nell’esercitazione 2-5. Non modificate il pannello frontale. 7. Selezionate File»Save As e rinominate questo VI Control Refs Exercise.vi.

 National Instruments Corporation

2-49

LabVIEW Corso Base II


Lezione 2

Progettazione di pannelli frontali

8. Aprite lo schema a blocchi e modificatelo come indicato. a. Create i riferimenti di controllo per i sei controlli cliccando con il tasto destro del mouse sui loro terminali e selezionando Create»Reference dal menu rapido. b. Utilizzate la funzione Build Array che si trova nella palette Functions»Array per combinare tutti i riferimenti di controllo in una matrice per passarla al subVI Disable Controls che si trova nella palette Functions»Select A VI. c. Avete bisogno anche della funzione Not che si trova nella palette Functions»Boolean per invertire il valore all’ingresso del subVI. 9. Salvate il VI. 10. Tornate al pannello frontale ed avviate il VI. Notate che quando impostate il selettore su True, tutti i controlli diventano grigi come prima. 11. Chiudete il VI quando avete finito.

Fine dell’esercitazione 2-8

LabVIEW Corso Base II

2-50

 National Instruments Corporation


Lezione 2

Progettazione di pannelli frontali

F. Menu run-time di LabVIEW (opzionale) Potete personalizzare la barra dei menu per ogni VI che realizzate in modo tale da avere un menu a tendina personalizzato mentre un VI è in esecuzione. Ci sono due parti che consentono la personalizzazione di menula creazione di menu e la gestione di menu. Potete realizzare menu personalizzati in due modistaticamente durante la fase di creazione o dinamicamente durante l’esecuzione. Potete memorizzare staticamente un modello di menu in un file chiamato runtime menu (RTM). Potete associare un file RTM ad un VI durante la fase di creazione. Quando un VI è in esecuzione, esso carica il menu dal file RTM associato. Potete anche inserire, cancellare e modificare da programma le voci di menu in fase di esecuzione dallo schema a blocchi utilizzando diverse funzioni di LabVIEW. Inoltre potete determinare da programma se un’opzione della barra dei menu è selezionata e da programma gestire la selezione. Con queste caratteristiche, potete personalizzare un menu a tendina per la vostra applicazione.

Menu statici I menu statici sono memorizzati in file RTM. Potete abilitare, creare o modificare un file RTM per un VI selezionando Edit»Run-Time Menu. Compare la finestra di dialogo Menu Editor.

Sul lato sinistro di questa finestra di dialogo compare l’organizzazione generale delle voci di menu. Le voci di menu sono classificate in tre tipi: User Item, Application Item o Separator. Un User Item può essere gestito da programma nello schema a blocchi. Essa possiede un name, che è la stringa che compare nel menu attuale, e un tag, che è un identificatore di stringa (non tiene conto di maiuscole o minuscole). Un tag identifica uno User Item nello schema a blocchi.

 National Instruments Corporation

2-51

LabVIEW Corso Base II


Lezione 2

Progettazione di pannelli frontali

Per semplicità, in fase di creazione, quando inserite il nome, viene copiato nel tag. Comunque, potete sempre modificare il tag per renderlo differente dal nome. Perché una voce di menu sia valida, il suo tag non dovrebbe essere vuoto. Le voci di menu non valide appaiono come ???. Un Application Item viene fornito da LabVIEW. Queste voci fanno parte del menu di default di LabVIEW. Per selezionare una voce particolare di LabVIEW, cliccate sul pulsante a freccia vicino a Item Name. Potete aggiungere voci singole o interi sottomenu utilizzando questo processo. Gli Application Items vengono gestiti in modo implicito da LabVIEW. Questi tag di voci non compaiono nello schema a blocchi. Non potete alterare il nome, il tag o altre proprietà di un Application Item. LabVIEW riserva dei tag che iniziano con APP_ per gli Application Item. Un Separator inserisce una linea di separazione nel menu. Non potete impostare tutte le proprietà per una voce Separator. Il Menu Editor garantisce che un tag sia unico per una data gerarchia di menu aggiungendo dei numeri, se necessario. Uno User Item può essere abilitato/disabilitato o verificato/non verificato impostando le proprietà relative. Potete impostare una combinazione rapida di tasti (acceleratore) per uno User Item, selezionando un’opportuna combinazione di tasti. Il Menu Editor vi consente di inserire, cancellare o riordinare delle voci di menu nella gerarchia dei menu. Cliccando sul pulsante + si aggiunge una nuova voce di menu. Potete anche modificare il tipo di voce di menu selezionandola da Item Type. Inoltre potete riordinare le voci di menu e creare sottomenu utilizzando i pulsanti a freccia. Infine, cliccando sul pulsante Delete Item si cancellano le voci di menu selezionate. La parte di anteprima del Menu Editor fornisce una vista aggiornata del menu run-time. Sul menu a tendina Menu Editor, i pulsanti Open, New, Save e Save As vi consentono di caricare e salvare file RTM. Una volta che avete chiuso il Menu Editor, avete la possibilità di aggiornare i menu run-time dei VI con il menu che avete creato.

Menu dinamici Mentre un VI è in esecuzione, potete modificare le voci della barra dei menu del VI utilizzando le funzioni di gestione dei menu descritte nella sezione seguente. Tutte queste funzioni si trovano in Functions»Application Control»Menu. Queste funzioni operano su un refnum del menu ricavato utilizzando la funzione Current VI’s Menu.

LabVIEW Corso Base II

2-52

 National Instruments Corporation


Lezione 2

Progettazione di pannelli frontali

Insert Menu Items

Inserisce una voce di menu (o una matrice di voci di menu) individuata da item names o item tags in un menu (barra dei menu o sottomenu). La posizione della voce viene specificata sia attraverso il parametro after item che attraverso una combinazione della coppia menu tag e after item.

Delete Menu Items

Cancella una voce di menu (o una matrice di voci di menu) individuata da items in un menu individuato da menu tag (dalla barra dei menu, se non viene specificato menu tag). Items può essere un tag, una matrice di tag, un numero di posizione o una matrice di numeri di posizione.

Get Menu Item Info

Fornisce le proprietà della voce di menu definita attraverso item tag (o menubar se item tag non è specificato). Le proprietà comprendono item name, enabled, checked e shortcut. Se la voce ha un sottomenu collegato, i suoi tag vengono forniti in submenu tags.

 National Instruments Corporation

2-53

LabVIEW Corso Base II


Lezione 2

Progettazione di pannelli frontali

Set Menu Item Info

Imposta le proprietà della voce di menu individuata da item tag. Le proprietà della voce comprendono item name, enabled, checked e shortcut. Le proprietà non collegate rimangono invariate.

Get Menu Shortcut Info

Fornisce la voce di menu che è accessibile tramite una certa combinazione rapida.

Gestione di Menu Selection Le funzioni Menu Selection gestiscono le vostre selezioni di menu. I menu potrebbero essere stati costruiti staticamente in VI Properties o dinamicamente durante l’esecuzione. Per impostare lo schema a blocchi affinché gestisca le selezioni di menu, prendete il controllo sul processo di selezione dei menu con la funzione Get Menu Selection. Mentre il VI controlla la selezione dei menu, aspetta una voce di menu selezionata utilizzando la stessa funzione, Get Menu Selection. Tutte le voci di menu in LabVIEW sono gestite in maniera implicita da LabVIEWsolo le selezioni del menu utente vengono ottenute attraverso Get Menu Selection. Una volta che avete selezionato una voce, non potete selezionarne un’altra finché la funzione Get Menu Selection non ha letto la prima voce. In tali condizioni, Get Menu Selection viene chiamata in modalità blocco menu, in cui il tracciamento del menu viene bloccato dopo che è stata letta una selezione. Il menu viene abilitato dopo che avete processato la selezione utilizzando la funzione Enable Menu Tracking.

Current VI’s Menubar

Fornisce il refnum menubar del VI corrente. Questa funzione dev’essere eseguita prima che siano richiamate altre funzioni di gestione dei menu.

LabVIEW Corso Base II

2-54

 National Instruments Corporation


Lezione 2

Progettazione di pannelli frontali

Get Menu Selection

Fornisce item tag dell’ultima voce di menu selezionata, opzionalmente aspettando un periodo di tempo specificato da timeout. Item path è una stringa che descrive la posizione della voce nella gerarchia dei menu. La selezione dei menu viene bloccata dopo che una voce è stata letta se block menu viene impostato su TRUE.

Enable Menu Tracking

Questa funzione abilita o disabilita il tracciamento dei menu. Una volta che un menu è stato bloccato utilizzando la funzione Get Menu Selection, dev’essere eseguito Enable Menu Tracking per riabilitare il menu a tendina.

 National Instruments Corporation

2-55

LabVIEW Corso Base II


Lezione 2

Progettazione di pannelli frontali

Esercitazione 2-9 VI Pull-down Menu (Opzionale) Obiettivo: Realizzare un VI utilizzando un menu run-time personalizzato.

Questo VI illustra come modificare e controllare da programma un menu personalizzato in un’applicazione in LabVIEW. 1. Aprite il VI Pull-down Menu che si trova in c:\exercises\LV Basics 2. Il pannello frontale e lo schema a blocchi sono parzialmente completi. Realizzerete un menu run-time personalizzato per questo VI utilizzando il Menu Editor e completerete lo schema a blocchi in maniera tale da poter accedere a questo menu. 2. Selezionate Edit»Run-Time Menu per visualizzare la finestra di dialogo Menu Editor.

Il menu run-time corrente per l’applicazione è il menu di default di LabVIEW. Nei prossimi passi sostituirete questo menu con un elenco personalizzato di selezioni. 3. Modificate il controllo superiore di tipo ring in Menu Editor da Default a Custom. Il menu elencato nella parte sinistra della finestra di dialogo dovrebbe essere sostituito da ??? che rappresenta una singola voce senza nome. 4. Nel controllo di tipo ring Item Type, selezionate Application Item»Operate»Entire Menu. Il menu di LabVIEW Operate dovrebbe essere aggiunto al menu personalizzato. Le opzioni di default in LabVIEW, così come le selezioni che avete creato, possono essere aggiunte ad un menu personalizzato. Provate un momento a navigare nel menu Operate dell’editor. Notate che potete scegliere varie voci e aprire sottomenu utilizzando le icone a triangolo. Quando selezionate singole voci del menu, il loro Item Name e Item Tag appaiono nella finestra Item Properties dell’editor. Quando avete finito, chiudete il menu Operate cliccando sul triangolo accanto all’opzione Operate.

LabVIEW Corso Base II

2-56

 National Instruments Corporation


Lezione 2

Progettazione di pannelli frontali

Ora dovreste vedere solo la voce Operate nell’elenco dei menu. 5. Cliccate sul pulsante + nella barra degli strumenti di Menu Editor. Nell’elenco compare una nuova voce senza nome, ???. Quando questa voce è evidenziata, inserite Test nella proprietà Item Name. Questa voce di menu ora ha un nome e un tag Test. 6. Cliccate nuovamente sul pulsante + per aggiungere un’altra voce sotto quella di Test. Cliccate sul pulsante con la freccia a destra e questa opzione senza nome diventa una sotto-voce del menu Test. Digitate Test 1 per questa nuova voce. 7. Aggiungete due nuove sotto-voci a Test chiamandole Test 2 e Test 3. La finestra di dialogo Menu Editor dovrebbe avere ora l’aspetto seguente:

Nell’area Preview del Menu Editor, potete vedere come sarà il menu personalizzato durante l’esecuzione. 8. Selezionate File»Save dalla finestra di dialogo Menu Editor. Salvate il menu run-time come Menu Exercise.rtm nella directory c:\exercises\LV Basics 2. Chiudete la finestra di dialogo Menu Editor. Quando LabVIEW vi chiede se volete adottare come menu run-time Menu Exercise.rtm selezionate Yes. Avete così configurato un menu a tendina personalizzato che sarà richiamato mentre il VI è in esecuzione.

 National Instruments Corporation

2-57

LabVIEW Corso Base II


Lezione 2

Progettazione di pannelli frontali

Schema a blocchi

9. Modificate lo schema a blocchi del VI e completatelo come mostrato precedentemente. a. Inserite la funzione Current VI’s Menubar che si trova nella palette Functions»Application Control»Menu. Questa funzione fornisce un refnum per il menu a tendina del VI selezionato, affinché possa essere utilizzato. b. Inserite la funzione Get Menu Selection che si trova nella palette Functions»Application Control»Menu. Ogni volta che viene eseguito il ciclo While, la funzione Get Menu Selection fornisce un Item Tag per ogni voce selezionata dall’utente nel menu runtime. Se nessuna voce è stata selezionata, Item Tag fornisce una stringa vuota. Questa funzione è configurata in maniera tale che ogni volta che legge la barra dei menu, impedisce all’utente di effettuare un’altra scelta nel menu finché non viene eseguita Enable Menu Tracking. c. Inserite la funzione Enable Menu Tracking che si trova nella palette Functions»Application Control»Menu. Questa funzione abilita il menu a tendina, dopo che è stato disabilitato dalla funzione Get Menu Selection. 10. Salvate il VI ed avviatelo. Quando il VI è in esecuzione, compare sul pannello frontale il menu run-time personalizzato. Se selezionate una delle voci presenti nel menu a tendina Test, il nome relativo compare nell’indicatore Item Tag e compare una finestra di dialogo con il nome del test all’interno. A questo punto, se provate a selezionare un’altra voce dal menu a tendina, noterete che il menu è disabilitato (ciò è causato dal parametro di blocco menu della funzione Get Menu Selection). Se cliccate su OK nella finestra di dialogo, l’indicatore Item Tag viene cancellato e il menu abilitato nuovamente dalla funzione Enable Menu Tracking.

LabVIEW Corso Base II

2-58

 National Instruments Corporation


Lezione 2

Progettazione di pannelli frontali

Inoltre, notate che le voci del menu a tendina Operate non vengono mostrate nella stringa Item Tagsolo le voci dell’utente vengono fornite dall’opzione Get Menu Selection. Per osservare il flusso del VI, potreste utilizzare l’esecuzione evidenziata e passo-passo ed esaminare lo schema a blocchi. Cliccate su Stop del pannello frontale del VI per arrestare l’esecuzione del programma. 11. Utilizzando il Menu Editor, potete assegnare combinazioni rapide di tasti alle voci che avete creato. Assegnate combinazioni rapide di tasti alle opzioni di test secondo la tabella seguente: Voce del Menu

Combinazione di tasti per Windows

Combinazione di tasti per Macintosh

Test 1

<Ctrl-1>

<option-1>

Test 2

<Ctrl-2>

<option-2>

Test 3

<Ctrl-3>

<option-3>

Oltre alle impostazioni precedenti, su piattaforme Windows potete assegnare alle voci di menu delle combinazioni con ALT. Ciò si realizza facendo precedere da un underscore la lettera del nome di menu scelta per la combinazione. Per esempio, per assegnare ALT-X ad una voce di menu chiamata Execute, date all’opzione Execute un Item Name di E_xecute. In questa esercitazione, assegnate ALT-T all’opzione Test del menu. 12. Salvate il menu con le assegnazioni rapide di tasti ed avviate il VI. Ora dovreste essere in grado di utilizzare tali combinazioni di tasti al posto del cursore, per selezionare le diverse opzioni di test. 13. Chiudete il VI.

Fine dell’esercitazione 2-9

 National Instruments Corporation

2-59

LabVIEW Corso Base II


Lezione 2

Progettazione di pannelli frontali

G. Diagrammi d’intensità I diagrammi d’intensità sono estremamente utili per la visualizzazione di dati campionati. Per esempio, i diagrammi funzionano meglio per la visualizzazione del terreno, in cui l’ampiezza rappresenta l’altitudine. Inoltre, potete rappresentare dati di temperatura con i diagrammi d’intensità. Come per i grafici tipo chart e tipo graph, il diagramma d’intensità tipo chart rappresenta un display con scorrimento, mentre quello tipo graph mostra un display fisso. Questi display accettano un blocco dati e mappano ogni valore con un colore associato, con un massimo di 256 colori disponibili.

Opzioni dei diagrammi d’intensità I display dei diagrammi d’intensità tipo chart e tipo graph utilizzano molte delle stesse opzioni delle loro controparti (grafici). Il pannello frontale seguente mostra molte delle opzioni disponibili. I diagrammi d’intensità forniscono anche delle opzioni non disponibili negli altri tipi di grafici. Siccome visualizzano un terzo valore (colore), è disponibile una scala dei colori. Potete utilizzare queste opzioni per impostare e visualizzare lo schema di mappatura dei colori. Il grafico d’intensità aggiunge anche un terzo valore, il valore z, al display del cursore.

Scala dei colori Asse Z

Asse Y

Palette del grafico

Asse X

Legenda della scala

Legenda del cursore

Per modificare il colore associato ad uno specifico valore d’intensità, cliccate con il tasto destro del mouse sul marcatore che compare accanto alla scala dei colori e selezionate Marker Color dal menu. Compare la palette dei colori, da cui potete selezionare un colore per associarlo con un particolare valore numerico. Per aggiungere più valori alla scala dei colori, cliccate con il tasto destro del mouse su di essa e selezionate Add Marker. Potete trascinare nell’opportuna posizione della scala dei colori il marcatore a bordo spesso che appare, o selezionare il marcatore con lo strumento Testo e digitare la posizione del marcatore. Dopo che avete inserito il marcatore in un’opportuna posizione nella scala, cliccate con il tasto destro del mouse su di esso e selezionate Marker Color.

LabVIEW Corso Base II

2-60

 National Instruments Corporation


Lezione 2

Progettazione di pannelli frontali

Tipi di dati per i diagrammi di intensità I diagrammi di intensità di tipo chart e di tipo graph accettano una matrice bidimensionale di numeri. La posizione di ogni elemento nella matrice (i suoi indici di riga e di colonna) corrisponde ai valori di X e di Y. L’ampiezza di ogni elemento della matrice corrisponde ad un colore. L’esempio seguente mostra una matrice 4 x 3 rappresentata su un diagramma di intensità. Notate come Intensity Graph trasponga gli elementi della matrice.

 National Instruments Corporation

2-61

LabVIEW Corso Base II


Lezione 2

Progettazione di pannelli frontali

Esercitazione 2-10 VI Intensity Graph Example Obiettivo: Utilizzare un diagramma di intensità.

Utilizzerete un VI che visualizza dei dati di un’onda d’interferenza su un diagramma di intensità. Utilizzerete il VI anche per rappresentare una matrice bidimensionale di dati sul grafico. 1. Aprite ed avviate il VI Intensity Graph Example che si trova nella directory c:\exercises\LV Basics 2. Di default il VI rappresenta una forma d’onda d’interferenza. Un Nodo Proprietà sullo schema a blocchi definisce l’intervallo dei colori utilizzati nel diagramma d’intensità. Potete modificare l’intervallo dei colori aprendo lo schema a blocchi e modificando la costante Color Array.

2. Cambiate la posizione del selettore Plot sul pannello frontale, portandola su User Data ed inserite i valori tra 0.0 e 10.0 nei controlli della matrice User Data. Avviate il VI. Notate come l’ampiezza di ogni elemento sia riportata sul grafico d’intensità.

LabVIEW Corso Base II

2-62

 National Instruments Corporation


Lezione 2

Progettazione di pannelli frontali

3. Chiudete il VI. Non salvate i cambiamenti.

Fine dell’esercitazione 2-10

ď›™ National Instruments Corporation

2-63

LabVIEW Corso Base II


Lezione 2

Progettazione di pannelli frontali

Sommario, trucchi e consigli

LabVIEW Corso Base II

y

Quando progettate interfacce utente, tenete presente: il numero di oggetti nel pannello frontale, il colore, la spaziatura e l’allineamento degli oggetti, il testo e i font utilizzati.

y

LabVIEW possiede gli strumenti seguenti per aiutarvi a creare interfacce utente: finestre di controllo, controlli tab, decorazioni, menu e ridimensionamento automatico degli oggetti del pannello frontale.

y

I pulsanti Latched Boolean in un cluster possono essere utilizzati per realizzare menu per le applicazioni.

y

Potete convertire un cluster che contiene componenti con lo stesso tipo di dato in una matrice e quindi utilizzare le funzioni delle matrici per processare i componenti del cluster. La funzione Cluster To Array (palette Functions»Cluster o Functions»Array) converte un cluster in una matrice monodimensionale.

y

I Nodi Proprietà sono strumenti potenti per l’ampliamento delle potenzialità dell’interfaccia utente. Utilizzate i Nodi Proprietà per modificare da programma l’aspetto e le caratteristiche funzionali dei controlli e degli indicatori del pannello frontale.

y

Create Nodi Proprietà dal menu rapido Create di un controllo o di un indicatore (o di un terminale di un controllo o di un indicatore sullo schema a blocchi).

y

Potete creare diversi terminali Nodi Proprietà per un singolo oggetto del pannello frontale, e così potete configurare le proprietà da diverse posizioni nello schema a blocchi.

y

Potete impostare o leggere le proprietà come l’accesso dell’utente (enable, disable, gray out), i colori, la visibilità, la posizione e il lampeggiamento.

y

I Nodi Proprietà aumentano notevolmente la funzionalità dei grafici cambiando le dimensioni delle rappresentazioni, regolando i valori delle scale e azionando i cursori o leggendo da essi.

y

Utilizzate la finestra Context Help per saperne di più sulle singole proprietà.

y

Potete utilizzare i riferimenti al controllo e i refnum per accedere ai Nodi Proprietà all’interno dei subVI.

y

Per creare i vostri menu run-time, selezionate Edit»Run-Time Menu per visualizzare la finestra di dialogo Menu Editor.

y

Potete creare e leggere da programma menu run-time con le funzioni presenti nella palette Functions»Application Control»Menu.

y

Potete utilizzare diagrammi di intensità per rappresentare dati tridimensionali. La terza dimensione è rappresentata da colori differenti corrispondenti alla mappatura dei colori da voi definita.

2-64

 National Instruments Corporation


Lezione 2

Progettazione di pannelli frontali

I diagrammi di intensità sono usati comunemente con l’analisi spettrale, la visualizzazione di temperatura e l’elaborazione delle immagini.

 National Instruments Corporation

2-65

LabVIEW Corso Base II


Lezione 2

Progettazione di pannelli frontali

Esercizi aggiuntivi

LabVIEW Corso Base II

2-11

Modificate l’esercitazione 2-4 aggiungendo un cluster con quattro pulsanti etichettati. Ogni volta che cliccate su un pulsante nel nuovo cluster, decrementate il display di uno. Utilizzate il pannello frontale come segue per iniziare. Salvate il VI come Cluster Example 2.vi.

2-12

Realizzate un VI che modifichi un controllo di un pulsante sul pannello frontale. Il pulsante dovrebbe controllare l’esecuzione del VI (cioè terminare il ciclo While). Utilizzate un Dialog Ring per selezionare le opzioni seguenti: pulsanti Enable e Show, pulsante Disable, pulsante Grey out e pulsante Hide. Utilizzate i Nodi Proprietà per implementare le azioni che il Dialog Ring definisce. Provate i diversi modi di funzionamento del pulsante mentre provate ad arrestare il VI. Salvate il VI come Button Input.vi quando avete finito.

2-13

Aprite il VI Analyze & Present Data che avete sviluppato nell’esercitazione 2-7 e modificate il VI in maniera tale che se il numero di punti nel sottoinsieme sia un punto o meno, il pulsante Log Results to File viene reso opaco.

2-66

 National Instruments Corporation


Lezione 2

Progettazione di pannelli frontali

Note

ď›™ National Instruments Corporation

2-67

LabVIEW Corso Base II


Lezione 2

Progettazione di pannelli frontali

Note

LabVIEW Corso Base II

2-68

ď›™ National Instruments Corporation


Lezione 3 Tecniche di gestione dei dati Questa lezione descrive come potete organizzare gli schemi a blocchi dei vostri VI basandosi sul modo di trasferite i dati da un posto all’altro. Innanzitutto vi verrà ricordato come LabVIEW avvia un VI. Quindi imparerete ad utilizzare i dati locali e globali per passare i dati fra i VI e al loro interno e vi saranno forniti consigli per utilizzare questi dati in maniera efficiente. Da ultimo imparerete ad utilizzare DataSocket per passare i dati tra VI e computer.

Imparerete: A. A conoscere le tecniche di gestione dei dati in LabVIEW B. Ad utilizzare le variabili locali C. Ad utilizzare le variabili globali D. A conoscere qualche sistema di utilizzazione di variabili locali e globali E. Ad utilizzare DataSocket.

ď›™ National Instruments Corporation

3-1

LabVIEW Corso Base II


Lezione 3

Tecniche di gestione dei dati

A. Tecniche di gestione dei dati in LabVIEW La lezione precedente descriveva come realizzare l’interfaccia utente o pannello frontale di un VI. Questa lezione si concentra su alcune funzioni dello schema a blocchi, come passare i dati tra i nodi e controllare l’ordine di esecuzione. Come già sapete, il principio che governa l’esecuzione di un programma in LabVIEW viene chiamato a flusso di dati. Le regole del flusso di dati sono: y

Un nodo viene eseguito solo quando i dati sono disponibili a tutti i suoi terminali d’ingresso.

y

Un nodo fornisce i dati a tutti i suoi terminali di uscita quando ha completato l’esecuzione.

y

I dati fluiscono attraverso i collegamenti istantaneamente.

Quindi uno schema a blocchi non viene eseguito dall’alto verso il basso o da sinistra a destra, ma secondo le regole del flusso di dati. Ciò contrasta con il metodo del controllo del flusso di esecuzione di un programma convenzionale in cui le istruzioni vengono eseguite nella sequenza in cui sono scritte. I collegamenti sono la chiave per comprendere come il flusso di dati opera in LabVIEW. Quando i fili sono direttamente collegati da un nodo al successivo, l’ordine di esecuzione è definito. Se non ci sono collegamenti tra due nodi, allora quei nodi possono essere eseguiti contemporaneamente. Se dovete eseguire quei due nodi in ordine, dovete utilizzare una struttura Sequence o, se i nodi sono subVI, creare delle dipendenze dei dati da programma come i cluster di errore per controllare l’esecuzione del programma.

Quando non potete usare collegamenti I fili sono il metodo più efficace per passare i dati da un nodo al successivo quando utilizzate la programmazione a flusso di dati. Sullo schema a blocchi i dati vengono trasferiti da una funzione o da un VI ad un altro collegandoli con un filo. I dati allora fluiscono dal produttore al consumatore. Nodo 1

LabVIEW Corso Base II

3-2

Nodo 2

 National Instruments Corporation


Lezione 3

Tecniche di gestione dei dati

Questo approccio non funziona se avete bisogno di scambiare dati tra schemi a blocchi che operano in parallelo. Schemi a blocchi in parallelo possono trovarsi in due cicli paralleli dello stesso schema a blocchi o in due VI che sono richiamati senza che ci sia dipendenza nel flusso dei dati. Considerate lo schema a blocchi seguente.

Nodo 1

Nodo 2

Questo schema a blocchi non esegue i due cicli in parallelo perché c’è un collegamento tra i due subVI. Il collegamento crea una dipendenza dei dati in cui il secondo ciclo non si avvia finché il primo non ha finito e passa i dati attraverso il suo tunnel. Il solo modo di eseguire i due cicli contemporaneamente è di rimuovere il collegamento. Tuttavia i subVI non possono scambiarsi dati a meno che non utilizziate un’altra tecnica di gestione dei dati. Questa lezione descrive le variabili locali, le variabili globali e DataSocket come metodi per passare i dati attraverso parti dello stesso schema a blocchi e tra schemi a blocchi differenti.

 National Instruments Corporation

3-3

LabVIEW Corso Base II


Lezione 3

Tecniche di gestione dei dati

B. Variabili locali Fino ad ora, avete letto o aggiornato i dati da un oggetto del pannello frontale utilizzando il suo terminale sullo schema a blocchi. Tuttavia un oggetto del pannello frontale ha solo un terminale sullo schema a blocchi e potreste aver bisogno di aggiornare o leggere un oggetto del pannello frontale da diversi posti dello schema a blocchi. Utilizzando le variabili locali, potete accedere ad oggetti del pannello frontale in diversi posti e passare i dati attraverso strutture che non possono essere collegate da un filo.

Creazione di variabili locali Ci sono due modi per creare variabili locali sullo schema a blocchi. Se avete già creato un oggetto del pannello frontale, potete creare una variabile locale cliccando con il tasto destro del mouse sull’oggetto e selezionando Create»Local Variable dal menu rapido. Potete utilizzare questo metodo sul pannello frontale o sullo schema a blocchi. Appare un’icona della variabile locale per l’oggetto del pannello frontale accanto al terminale dello schema a blocchi. Quando cliccate con il tasto destro del mouse sul terminale per creare una variabile locale, la variabile locale si riferisce all’oggetto su cui avete cliccato per creare l’icona. Potete anche selezionare Local Variable dalla palette Structures. Sullo schema a blocchi appare un nodo di variabile locale, mostrato a sinistra. Potete selezionare l’oggetto del pannello frontale al quale volete accedere cliccando con il tasto destro del mouse sul nodo della variabile e selezionando un oggetto dal menu Select Item. Questo menu elenca le etichette dei controlli e degli indicatori del pannello frontale. Per questo motivo etichettate sempre i vostri controlli e indicatori del pannello frontale con nomi descrittivi utilizzando le etichette.

Per esempio, se il primo oggetto che avete creato sul pannello frontale è etichettato come number in, appare l’icona di variabile locale mostrata a sinistra. Dopo che avete inserito la variabile locale nello schema a blocchi, potete selezionare l’oggetto del pannello frontale opportuno cliccando sulla variabile con lo strumento Modifica o cliccando con il tasto destro del mouse su di esso e selezionando l’oggetto del pannello frontale dal menu Select Item.

LabVIEW Corso Base II

3-4

 National Instruments Corporation


Lezione 3

Pannello frontale

Tecniche di gestione dei dati

Schema a blocchi

Read Local e Write Local Potete leggere dati da una variabile locale oppure scriverci sopra. Dopo che avete inserito la variabile locale nello schema a blocchi, dovete decidere come utilizzarla. Di default, una variabile locale assume di ricevere dati. Quindi, questo tipo di variabile locale agisce come un indicatore ed è una write local. Quando scrivete nuovi dati nella variabile locale, il controllo o l’indicatore relativo del pannello frontale si aggiornano per prendere il nuovo dato. Potete modificare la configurazione di una variabile locale affinché agisca come sorgente di dati o read local. Per fare questo, cliccate con il tasto destro del mouse sulla variabile e selezionate Change To Read. Sullo schema a blocchi, un’icona read local si comporta proprio come un controllo. Quando questo nodo viene eseguito sullo schema a blocchi, il vostro programma legge i dati nel relativo controllo o indicatore del pannello frontale. Per trasformare una read local in write local, cliccate con il tasto destro del mouse sulla variabile e selezionate Change To Write. La variabile locale modificherà la direzione dei dati per riceverli invece di fornirli. Sullo schema a blocchi, potete distinguere visivamente i due tipi di variabili locali proprio come distinguete i controlli dagli indicatori. Una read local ha un bordo spesso, mettendo in evidenza che è una sorgente di dati, analogamente ad un controllo. Una write local ha un bordo sottile, perché agisce come un ricevitore di dati, analogamente ad un indicatore. Nella figura seguente, entrambe le variabili locali si riferiscono allo stesso oggetto del pannello frontale. Read Local

 National Instruments Corporation

3-5

Write Local

LabVIEW Corso Base II


Lezione 3

Tecniche di gestione dei dati

Esempio di variabile locale Come esempio che mostri quando potete aver bisogno di una variabile locale, considerate come dovreste usare un singolo interruttore sul pannello frontale per controllare due cicli While in parallelo. I due cicli non sono collegati e vengono eseguiti contemporaneamente. Dapprima studieremo due metodi errati che utilizzano un terminale per l’interruttore sullo schema a blocchi (Metodo 1 e Metodo 2). Quindi mostreremo come una variabile locale risolva il problema (Metodo 3). Il pannello frontale di questo VI di esempio appare di seguito.

Metodo 1 (errato) Come primo tentativo, inseriamo il terminale di controllo dei cicli all’esterno di entrambi e colleghiamolo ad ogni terminale condizionale. In questo caso, il terminale di controllo dei cicli viene letto una volta, prima che ogni ciclo While inizi l’esecuzione. Ricordiamo che questo accade perché LabVIEW è un linguaggio di programmazione a flusso di dati e lo stato del controllo booleano costituisce un ingresso per entrambi i cicli. Se viene passato un TRUE all’interno dei cicli, i cicli saranno permanentemente in esecuzione. Spegnere l’interruttore non arresta il VI perché l’interruttore non viene letto durante le iterazioni dei due cicli. Questa soluzione non funziona.

Metodo 2 (errato) Ora spostate il terminale di controllo dei cicli all’interno del ciclo 1 affinché venga letto ad ogni iterazione del ciclo 1. Sebbene il ciclo 1 si arresti correttamente, c’è un problema in questo approccio. Il ciclo 2 non va in esecuzione se non riceve i suoi dati d’ingresso.

LabVIEW Corso Base II

3-6

 National Instruments Corporation


Lezione 3

Tecniche di gestione dei dati

Ricordate che il ciclo 1 non passa i dati all’esterno se non viene arrestata l’esecuzione del ciclo. Quindi il ciclo 2 deve aspettare il valore finale del controllo del ciclo, disponibile solo dopo che il ciclo 1 ha terminato. Quindi i cicli non vengono eseguiti in parallelo. Inoltre il ciclo 2 viene eseguito per una sola iterazione perché il suo terminale condizionale riceve un valore di FALSE dall’interruttore di controllo nel ciclo 1.

Metodo 3 (corretto) In questo esempio, il ciclo 1 è nuovamente controllato dall’interruttore, ma questa volta, il ciclo 2 legge una variabile locale associata all’interruttore. Quando impostate l’interruttore su FALSE sul pannello frontale, il terminale dell’interruttore nel ciclo 1 scrive FALSE sul terminale condizionale del ciclo 1. Il ciclo 2 legge la variabile locale dell’interruttore e scrive FALSE sul terminale condizionale del ciclo 2. Quindi i cicli While operano in parallelo e terminano contemporaneamente quando l’unico interruttore sul pannello frontale viene spento.

Questo semplice esempio dimostra l’utilità delle variabili locali. Come mostrato precedentemente, l’utilizzo di variabili locali fornisce l’accesso ad un unico oggetto del pannello frontale da posti diversi dello schema a blocchi. Le variabili locali sono anche necessarie quando non potete raggiungere i vostri obbiettivi utilizzando dei fili per trasportare i dati. Fin qui avete imparato che potete leggere dati di ingresso da controlli e inviare i risultati su un indicatore. Ma, per esempio, cosa fate se volete determinare quali parametri erano stati usati per avviare un VI precedentemente e volete inserire quei valori nei controlli per consentirne la modifica all’utente? Come potete scrivere quei valori in un controllo?

 National Instruments Corporation

3-7

LabVIEW Corso Base II


Lezione 3

Tecniche di gestione dei dati

Non potete farlo con controlli e indicatori standard. Utilizzando le variabili locali potete superare questa limitazione. Potete aggiornare un controllo dallo schema a blocchi. Inoltre, potete avere un qualsiasi numero di riferimenti di variabili locali per un dato controllo del pannello frontale, alcuni in modalità di scrittura e altri in modalità di lettura. Con un riferimento di variabile locale, potete accedere ad un oggetto del pannello frontale come ingresso e come uscita. Per comprendere questo concetto, esamineremo un esempio che mostra un altro uso delle variabili locali. Qui sotto c’è un unico indicatore di stringa. Supponete di volerlo aggiornare per visualizzare il ciclo in esecuzione. Senza una variabile locale, non c’è modo di risolvere il problema. Potete inserire il terminale indicatore in un solo ciclo. Tuttavia, utilizzando una variabile locale, potete accedere allo stesso indicatore del pannello frontale da più di un posto dello schema a blocchi, consentendo ad un unico indicatore di visualizzare il ciclo che è in esecuzione. L’indicatore Quale ciclo? viene inserito nel ciclo 1 e una variabile locale di quell’indicatore viene inserita nel ciclo 2. Sebbene questo esempio sia semplice, esso mostra come un indicatore possa essere aggiornato da due posti separati dello schema a blocchi.

LabVIEW Corso Base II

3-8

 National Instruments Corporation


Lezione 3

Esercitazione 3-1

Tecniche di gestione dei dati

VI Login

Obiettivo: Utilizzare variabili locali per inizializzare controlli del pannello frontale Nota Utilizzate questo VI nel progetto della Lezione 5.

Pannello frontale

1. Aprite il VI Login che si trova nella directory c:\exercises\LV Basics 2. Il pannello frontale è già stato creato. Completate lo schema a blocchi.

Schema a blocchi

2. Notate che le variabili locali sono incluse in una struttura Sequence a singolo frame e che la costante stringa vuota è collegata alla cornice del ciclo While. Questa impostazione assicura che entrambe le variabili locali siano aggiornate prima che parta il ciclo While. a. La variabile locale Login Name è impostata su write localRipristina il login del nome su una stringa vuota. Per creare questa variabile locale, cliccate con il tasto destro del mouse sul terminale Login Name e selezionate Create»Local Variable dal menu rapido. b. La variabile locale Password è impostata su write localRipristina la stringa della password su una stringa vuota. Per creare questa variabile locale, cliccate con il tasto destro del mouse sul terminale Password e selezionate Create»Local Variable dal menu rapido.

 National Instruments Corporation

3-9

LabVIEW Corso Base II


Lezione 3

Tecniche di gestione dei dati

c. Costante Empty String, disponibile nella palette Functions»StringPassa i valori della stringa alle variabili locali Login Name e Password. d. Nodo Proprietà Login NamePer creare questo nodo, cliccate con il tasto destro del mouse sul terminale Login Name e selezionate Create»Property Node. Scegliete la proprietà key focus e collegate una costante booleana TRUE ad esso. e. Inserite il VI Verify Information. Per selezionare questo VI, selezionate Functions»Select a VI, andate su c:\exercises\LV Basics 2, cliccate due volte sul VI Verify Information che avete realizzato nell’esercitazione 1-2 e inseritelo nello schema a blocchi. Questo VI utilizza il nome e la password e verifica se c’è corrispondenza in una tabella con le informazioni sugli impiegati. Se avete problemi nel collegare la costante di stringa ad una variabile locale, cliccate con il tasto destro sulla variabile locale e selezionate Change to Write Local. Nota

3. Salvate il VI con lo stesso nome. 4. Ritornate al pannello frontale ed avviate il VI. Notate che i controlli Login Name e Password si reimpostano su stringhe vuote quando avviate il VI. 5. Ora ridimensionate il pannello frontale per mostrare solo gli oggetti necessari nel modo seguente:

6. Salvate e chiudete il VI.

Fine dell’esercitazione 3-1

LabVIEW Corso Base II

3-10

 National Instruments Corporation


Lezione 3

Esercitazione 3-2 Obiettivo:

Tecniche di gestione dei dati

VI Select and Plot Waveform (Opzionale)

Utilizzare le variabili locali per modificare sia gli indicatori che i controlli del pannello frontale

Pannello frontale

1. Aprite il VI Select and Plot Waveform che si trova nella directory c:\exercises\LV Basics 2. Il pannello frontale è già stato creato. Completate lo schema a blocchi. 2. Aprite ed esaminate lo schema a blocchi.

 National Instruments Corporation

3-11

LabVIEW Corso Base II


Lezione 3

Tecniche di gestione dei dati

Schema a blocchi

3. Completate lo schema a blocchi con le seguenti: a. String Constant, che si trova nella palette Functions»StringInvia i valori di testo all’indicatore del pannello frontale Current Activity. b. Numeric Constant, che si trova nella palette Functions»NumericReimposta la finestra di dialogo di tipo ring Select Waveform su zero (Stand By) dopo che la forma d’onda è stata acquisita. c. Variabile locale New Waveform impostata su read localLegge i dati nel grafico New Waveform e li passa al grafico Previous Waveform. Per creare questa variabile locale, cliccate con il tasto destro del mouse sul terminale New Waveform e selezionate Create»Local Variable dal menu rapido. Quindi cliccate con il tasto destro del mouse sulla variabile locale e selezionate Change To Read. d. Variabile locale Current Activity impostata su write localInserisce nuovo testo nell’indicatore Current Activity. Ci sono diverse copie di questa variabile locale nello schema a blocchi, mostrandovi come potete accedere ad un oggetto del pannello frontale da diversi posti dello schema a blocchi. Per creare una variabile locale, cliccate con il tasto destro del mouse sul terminale Current Activity e selezionate Create»Local Variable dal menu rapido. Quindi fate due copie in più di questa variabile locale.

LabVIEW Corso Base II

3-12

 National Instruments Corporation


Lezione 3

Tecniche di gestione dei dati

e. Variabile locale Select Waveform impostata su write localReimposta il controllo Select Waveform sulla modalità Stand By. Per creare questa variabile locale, cliccate con il tasto destro del mouse sul terminale Select Waveform e selezionate Create»Local Variable dal menu rapido. Assicuratevi di aver impostato correttamente ciascuna variabile locale come read local o write local. Per passare da write local a read local, cliccate con il tasto destro del mouse sull’icona e selezionate Change to read Local dal menu rapido. Per passare da read local a write local, cliccate con il tasto destro del mouse sull’icona e selezionate Change to Write. Nota

f. Funzione Wait (ms), che si trova nella palette Functions»Time & DialogGenera un ritardo che vi consente di osservare le attività del pannello frontale. g. VI Acquire Signal, che si trova nella palette User Libraries»Basics 2 CourseGenera i dati per la forma d’onda specificata dal controllo Select Waveform. 4. Salvate il VI con lo stesso nome. 5. Tornate al pannello frontale ed avviate il VI. Notate che il VI aggiorna l’indicatore di stringa e immagazzina la vecchia forma d’onda nel grafico Previous Waveform. Inoltre osservate che dopo che la nuova forma d’onda è stata acquisita e inviata sullo schermo, il controllo Select Waveform viene reimpostato su Stand By (zero). 6. Chiudete il VI quando avete finito.

Fine dell’esercitazione 3-2

 National Instruments Corporation

3-13

LabVIEW Corso Base II


Lezione 3

Tecniche di gestione dei dati

C. Variabili globali Ricordate che potete utilizzare le variabili locali per accedere ad oggetti del pannello frontale da varie posizioni dello schema a blocchi. Queste variabili locali sono accessibili solo in quel singolo VI. Supponete di aver bisogno di passare i dati tra diversi VI che operano contemporaneamente, o i cui subVI hanno delle icone che non possono essere collegate tramite fili nello schema a blocchi. Potete utilizzare una variabile globale per ottenere questo. Le variabili globali sono simili a quelle locali, ma invece di essere limitate all’uso in un singolo VI, le variabili globali possono passare valori tra diversi VI. Considerate l’esempio seguente. Supponete di avere due VI che funzionano contemporaneamente. Ogni VI scrive un dato su un grafico tipo chart. Il primo VI contiene anche un booleano per arrestare entrambi i VI. Ricordate che qualora entrambi i cicli fossero sullo stesso schema a blocchi, avreste bisogno di utilizzare una variabile locale per arrestare i cicli. Adesso che ogni ciclo si trova in un VI distinto, dovete utilizzare una variabile globale per arrestare i cicli.

Creazione di variabili globali Le variabili globali sono oggetti interni di LabVIEW. Essi appaiono come VI speciali nella memoria del computer. Una variabile globale ha un pannello frontale in cui potete inserire controlli e indicatori di ogni tipo. Tuttavia, una variabile globale non ha schema a blocchi. Il pannello frontale è semplicemente un contenitore da cui potete prelevare dati da altri VI.

LabVIEW Corso Base II

3-14

ď›™ National Instruments Corporation


Lezione 3

Tecniche di gestione dei dati

Per creare una variabile globale, selezionate Global Variable dalla palette Structures. Un nodo di variabile globale appare sullo schema a blocchi. L’icona di una variabile globale sullo schema a blocchi è simile a quella di una variabile locale, a parte una piccola figura di un mondo che appare sulla sinistra del nome della variabile globale. Aprite il pannello di una variabile globale cliccando due volte sul nodo relativo. Inserite controlli e indicatori sul pannello frontale allo stesso modo con cui lo fate in un pannello frontale di un VI standard. Dovete etichettare ogni controllo o indicatore (con un’etichetta propria) perché una variabile globale si riferisce ad un oggetto tramite il suo nome. Nota

L’esempio seguente mostra il pannello frontale di una variabile globale con tre oggettiun numero, una stringa e un cluster contenente un controllo digitale e uno booleano. Notate che la barra degli strumenti della finestra non mostra le stesse voci di un normale pannello frontale.

Dopo che avete finito di inserire gli oggetti sul pannello frontale della variabile globale, salvate la variabile globale e tornate allo schema a blocchi del VI originario. Selezionate l’oggetto specifico nel VI della variabile globale al quale volete accedere. Per selezionare un dato oggetto, cliccate con il tasto destro del mouse sul nodo della variabile globale e selezionate l’oggetto dal menu Select Item. Questo menu elenca le etichette proprie di tutti gli oggetti del pannello frontale. Notate che potete anche aprire il pannello frontale contenente gli oggetti nella variabile globale da questo menu rapido.

 National Instruments Corporation

3-15

LabVIEW Corso Base II


Lezione 3

Tecniche di gestione dei dati

Potete anche cliccare sul nodo con lo strumento Modifica e selezionare la variabile globale cui volete accedere. Dopo aver selezionato l’oggetto specifico della variabile globale al quale volete accedere, il nodo cambia aspetto, dalla figura mostrata a sinistra passa a visualizzare l’oggetto che avete scelto, ad esempio un numero. Potete utilizzare questa variabile globale in altri VI. Siccome una variabile globale è un tipo speciale di VI, potete inserirla in altri VI utilizzando l’opzione Select a VI nella palette Function. Quindi cliccate con il tasto destro del mouse sul nodo per selezionare un oggetto specifico della variabile globale al quale volete accedere, come descritto sopra. Un pannello frontale di variabile globale può contenere riferimenti a molti oggetti singoli che sono accessibili globalmente. Non avete bisogno di creare un VI di variabile globale separato per ogni oggetto su cui avete bisogno di accedere in modo globale. Nota

Lettura e scrittura delle variabili globali Come per le variabili locali, potete sia leggere che scrivere dati su una variabile globale. Di default una variabile globale è write global quando la create. Potete scrivere un nuovo valore in una variabile globale e allora la variabile globale si comporta da indicatore. Potete modificare la configurazione di una variabile globale affinché agisca come sorgente di dati, o read global. Per far questo, cliccate con il tasto destro del mouse sulla variabile e selezionate Change To Read. Sullo schema a blocchi, un’icona read global si comporta come un controllo. Quando questo nodo è in esecuzione sullo schema a blocchi, il programma legge dati nell’oggetto associato del pannello frontale. Per modificare una read global in una write global, cliccate con il tasto destro del mouse sulla variabile e selezionate Change To Write. La variabile globale modificherà la direzione dei dati per ricevere dati invece di fornirli. Quando questo nodo è in esecuzione sullo schema a blocchi, il programma invia un nuovo dato nella variabile globale. Nello schema a blocchi potete distinguere visivamente le variabili globali in lettura rispetto a quelle in scrittura proprio come fate con i controlli e gli indicatori. Una variabile globale in lettura ha un bordo spesso, mettendo in evidenza che è una sorgente di dati. Una variabile globale in scrittura ha un bordo sottile, perché agisce come serbatoio di dati. Nella figura sotto, entrambe le variabili locali si riferiscono allo stesso oggetto del pannello frontale della variabile globale. Write Global

Read Global

LabVIEW Corso Base II

3-16

 National Instruments Corporation


Lezione 3

Esercitazione 3-3

Tecniche di gestione dei dati

VI Data to Global

Obiettivo: Realizzare un VI che scriva dati in una variabile globale Create una variabile globale e utilizzatela per inviare dati al VI dell’esercizio successivo.

1. Aprite un nuovo VI e realizzate il pannello frontale precedente.

Schema a blocchi

2. Realizzate lo schema a blocchi precedente. a. Struttura Sequence, che si trova nella palette Functions»StructuresInizializza una variabile globale utilizzando una dipendenza dei dati artificiale con la costante booleana, che si trova nella palette Functions»Boolean, e il ciclo While. b. Ciclo While, che si trova nella palette Functions»StructuresDetermina l’esecuzione continua del VI finché una variabile globale booleana invia un valore TRUE. Cliccate con il tasto destro del mouse sul terminale Conditional e selezionate Stop If True. c. Funzione Wait Until Next ms Multiple, che si trova nella palette Functions»Time & DialogGarantisce che i dati siano scritti sulla variabile globale ogni 50 ms. Create la costante cliccando con il tasto destro del mouse sul terminale input e selezionando Create»Constant. d. Funzione Divide, che si trova nella palette Functions»NumericDivide il contatore di iterazione del ciclo While per 20. Create la costante cliccando con il tasto destro del mouse sul terminale inferiore input e selezionando Create»Constant.

 National Instruments Corporation

3-17

LabVIEW Corso Base II


Lezione 3

Tecniche di gestione dei dati

e. Funzione Sine, che si trova nella palette Functions»Numeric»TrigonometricAccetta un valore d’ingresso in radianti e produce in uscita il seno di quel valore. 3. VI My Globals per le variabili globali—Passa i valori tra due VI che operano contemporaneamente. Completate i passi seguenti per creare e configurare le variabili globali. a. Nello schema a blocchi selezionate Global Variable dalla palette Structures. b. Cliccate due volte sul nodo per attivare il pannello frontale della variabile globale. Create il pannello frontale della variabile globale come indicato nella figura seguente. Etichettate i controlli con etichette proprie. Notate che non c’è schema a blocchi associato al pannello frontale della variabile globale. Pannello della variabile globale

c. Salvate e chiudete la variabile globale. Globals.vi.

Chiamatela My

d. Ritornate allo schema a blocchi di Data to Global. e. Cliccate con il tasto destro del mouse sul nodo della variabile globale e selezionate Visible Items»Label. f. Usando lo strumento Modifica, cliccate sul nodo della variabile globale e selezionate Stop. Potete modificare la variabile per renderla di lettura o di scrittura, cliccandoci sopra con il tasto destro del mouse. g. Fate un numero sufficiente di copie della variabile My Global.vi. Utilizzate lo strumento Modifica per selezionare la voce corretta di cui avete bisogno dalla variabile globale. Inizializzate la variabile globale Stop all’interno della struttura Sequence scrivendoci un FALSE. La costante è collegata al bordo del ciclo per forzare la variabile globale all’inizializzazione prima che il ciclo inizi l’esecuzione. Questo evita la lettura del ciclo While da parte di una variabile non inizializzata o da una che ha un valore sconosciuto. 4. Salvate il VI come Data to Global.vi. Tenetelo aperto perché dovete eseguirlo nell’esercizio successivo.

Fine dell’esercitazione 3-3

LabVIEW Corso Base II

3-18

 National Instruments Corporation


Lezione 3

Esercitazione 3-4

Tecniche di gestione dei dati

VI Display Global Data

Obiettivo: Realizzare un VI che legga dati da una variabile globale Realizzate un VI che legga i dati da una variabile globale che avete creato nell’esercizio precedente e visualizzi i dati su un grafico tipo chart.

Pannello frontale

1. Aprite un nuovo VI e realizzate il pannello frontale precedente.

Schema a blocchi

2. Realizzate lo schema a blocchi come indicato precedentemente. a. Ciclo While, che si trova nella palette Functions»StructuresDetermina l’esecuzione continua del VI finché non viene premuto il pulsante di Stop. Cliccate con il tasto destro del mouse sul terminale Conditional e selezionate Stop If True. b. Funzione Wait Until Next ms Multiple, che si trova nella palette Functions»Time & DialogImposta la frequenza di esecuzione del ciclo. Assicuratevi che di default sia di 20 iterazioni al secondo o 50 ms.

 National Instruments Corporation

3-19

LabVIEW Corso Base II


Lezione 3

Tecniche di gestione dei dati

3. VI My Globals per le variabili globali—Passa i valori tra due VI che operano contemporaneamente. Queste variabili globali non sono state create da un nodo di variabile globale su questo schema a blocchi, per cui i passi per creare e configurare le variabili globali sono i seguenti. a. Selezionate

Functions»Select a VI e selezionate My Globals.vi dalla directory c:\exercises\Basics 2, in cui avete salvato la variabile globale che avete creato nell’esercitazione 3-3. L’oggetto della variabile globale visualizzato nel nodo è Stop o Data Value, a seconda dell’ordine in cui sono stati disposti sul pannello frontale della variabile globale.

b. Copiate la variabile globale in maniera tale da averne due, una di Stop e l’altra Data Value. Per accedere ad un oggetto differente della variabile globale, cliccate sul nodo con lo strumento Modifica e selezionate l’oggetto desiderato. c. Rendete la variabile Data Value di tipo read cliccando con il tasto destro del mouse sul modo e selezionando Change To Read dal menu rapido. Il VI legge un valore da Data Value e lo passa al grafico. Esso scrive anche il valore corrente del pulsante di Stop sulla relativa variabile globale ad ogni ciclo. Utilizzando una variabile globale, il valore booleano viene letto nel VI Data to Global per controllarne il ciclo While. 4. Salvate il VI come Display Global Data.vi. 5. Passate al pannello frontale del VI Data to Global e posizionate i due pannelli frontali affinché siano visibili entrambi. 6. Avviate Data to Global. Tornate al VI Display Global Data ed avviatelo. Il grafico sul pannello frontale del VI Display Global Data visualizza i dati. Data to Global scrive continuamente il valore che calcola sull’oggetto della variabile globale Data Value. L’esempio seguente mostra Display Global Data che legge l’oggetto della variabile globale e aggiorna il grafico.

LabVIEW Corso Base II

3-20

 National Instruments Corporation


Lezione 3

Tecniche di gestione dei dati

Il controllo Time Delay stabilisce ogni quanto tempo viene letta la variabile globale. Notate come Time Delay influenza i valori rappresentati sul grafico. Se impostate Time Delay su 0, lo stesso valore Data Value viene letto dalla variabile globale diverse volte, facendo apparire una diminuzione della frequenza della sinusoide generata in Data to Global. Se impostate Time Delay ad un valore più grande di 50 ms, può darsi che Display Global Data non riesca a leggere alcuni valori generati in Data to Global e la frequenza della sinusoide sembra diminuire. Se impostate Time Delay su 50 ms, cioè sulla stessa frequenza utilizzata nel ciclo While di Data to Global, Display Global Data legge e visualizza ogni punto della variabile globale Data Value una sola volta. Quando utilizzate le variabili globali, se non fate attenzione, potete leggere dei valori più di una volta, o potete non leggerli tutti. Se dovete processare ogni singolo aggiornamento, fate particolare attenzione ad assicurare che un nuovo valore non sia scritto nella variabile globale fino a quando il precedente non è stato letto, e che dopo che una variabile globale è stata letta, non venga letta di nuovo finché un altro valore non è stato scritto sulla variabile globale. Nota

7. Premete il pulsante STOP sul pannello frontale di Display Global Data per arrestare il VI. Notate che sia Display Global Data che Data to Global si arrestano. Il VI scrive continuamente il valore del pulsante STOP sull’oggetto Stop della variabile globale. Quel valore

 National Instruments Corporation

3-21

LabVIEW Corso Base II


Lezione 3

Tecniche di gestione dei dati

viene quindi letto in Data to Global e passato al terminale condizionale per controllarne il ciclo. Quando premete il pulsante STOP, un valore TRUE passa attraverso la variabile globale a Data to Global, in cui viene letto per arrestare anche quel VI. 8. Chiudete entrambi i VI.

Fine dell’esercitazione 3-4

LabVIEW Corso Base II

3-22

ď›™ National Instruments Corporation


Lezione 3

Tecniche di gestione dei dati

D. Avvertenze importanti su variabili locali e globali Inizializzazione di variabili locali e globali Verificate che le vostre variabili locali e globali contengano dei valori noti prima che il programma inizi. Altrimenti, le variabili potrebbero contenere dati in grado di causare dei malfunzionamenti del programma. Se non inizializzate una variabile locale prima di leggere i dati da essa, essa conterrà il valore corrente del controllo. La prima volta che il vostro programma legge una variabile globale, essa contiene il valore di default dell’oggetto che legge, a meno che non abbiate inizializzato precedentemente la variabile globale.

Condizioni di conflitto Le variabili locali e globali di LabVIEW non si comportano come le variabili locali e globali nei linguaggi di programmazione testuali. Ricordate che LabVIEW è un linguaggio a flusso di dati, non un linguaggio di programmazione sequenziale. L’abuso di variabili locali e globali può portare a comportamenti inattesi del vostro programma, perché le funzioni potrebbero non essere eseguite nell’ordine corretto. Considerate il semplice esempio di variabile locale qui sotto. Il codice in LabVIEW appare accanto al codice equivalente di un linguaggio di programmazione sequenziale. Codice in LabVIEW

Codice sequenziale x=x+5 x=x+2 o

x=x+2 x=x+5

Quando eseguite il codice sequenziale, la soluzione per un dato valore di x è chiaro perché le istruzioni vengono eseguite dall’alto verso il basso. Tuttavia, il codice in LabVIEW non segue tale convenzione perché è un linguaggio a flusso di dati. Ogni nodo viene eseguito quando tutti i suoi dati sono disponibili. Non ci sono dipendenze di dati per garantire l’ordine desiderato di esecuzione nello schema a blocchi sopra. Infatti, ci sono diverse soluzioni possibili, in funzione di come il VI viene compilato. Non potete assumere che il codice che si trova nello schema a blocchi in basso sia eseguito dopo il codice al di sopra di esso. L’esempio mostrato sopra illustra quello che è noto come condizione di conflitto. Il risultato del vostro programma dipende dall’ordine in cui vengono eseguite le istruzioni e il codice potrebbe non seguire l’ordine che presupponete. Se utilizzate variabili locali e globali, potreste avere

 National Instruments Corporation

3-23

LabVIEW Corso Base II


Lezione 3

Tecniche di gestione dei dati

condizioni di conflitto se notate che il vostro codice viene eseguito correttamente solo alcune volte, o che viene eseguito correttamente durante l’esecuzione evidenziata ma non durante la normale esecuzione. Per evitare situazioni di conflitto, scrivete su una variabile locale o globale in una locazione separata rispetto a quella da cui l’avete letta—in posizioni diverse dello schema a blocchi o della struttura, o in diverse strutture o VI. Quando si utilizzano variabili globali in VI che vengono eseguiti in parallelo, potreste aver bisogno di utilizzare una variabile globale booleana aggiuntiva che indica quando un dato di variabile globale è stato modificato. Altri VI possono monitorare questo booleano per vedere se il dato è stato modificato e leggere il nuovo valore.

Utilizzare variabili locali e globali solo quando necessario Le variabili locali e globali sono uno strumento potente che potete utilizzare per raggiungere determinati obiettivi. Per esempio, potete creare su un singolo schema a blocchi cicli paralleli che vengono controllati con un oggetto da pannello frontale, oppure potete scambiare dati tra VI in esecuzione separata. Comunque, le variabili locali e globali non fanno parte intrinsecamente del concetto di programmazione a flusso di dati di LabVIEW. Gli schemi a blocchi possono diventare più difficili da leggere quando si utilizzano variabili locali o globali. Le condizioni di conflitto possono causare comportamenti inattesi. L’accesso ai dati immagazzinati ad una variabile locale o globale è più lento rispetto al flusso di dati e meno efficiente dal punto di vista di utilizzo della memoria. Quindi, utilizzate con parsimonia le variabili locali e globali e solo quando necessario. Per esempio, non utilizzate variabili locali e globali per evitare lunghi collegamenti nello schema a blocchi o per accedere in ogni frame di una struttura Sequence.

LabVIEW Corso Base II

3-24

 National Instruments Corporation


Lezione 3

Tecniche di gestione dei dati

Considerate lo schema a blocchi precedente. La struttura Sequence a tre frame esegue i soliti compiti di tutti i VI. Il Frame 0 legge i controlli sul pannello per la configurazione del sistema di test, il Frame 1 utilizza le variabili locali per i controlli per acquisire i dati e il Frame 2 utilizza le variabili locali per scrivere dati su file. Sebbene non ci sia fondamentalmente nulla di sbagliato nell’utilizzo della struttura sequence e delle variabili locali in questo modo, esso non costituisce il metodo più efficiente di utilizzo della programmazione a flusso di dati. Quando osservate uno dei frame, non è semplice capire da dove provengono i valori delle variabili locali e dove sono stati aggiornati l’ultima volta.

Lo schema a blocchi mostrato sopra elimina l’uso delle variabili locali disponendo i terminali di controllo originali al di fuori della struttura sequence cosicché ogni frame della sequenza ora ha accesso ai valori. I dati vengono passati tra i frame della sequenza attraverso una variabile locale della sequenza.

Lo schema a blocchi mostrato sopra rimuove la struttura sequence ed utilizza il flusso dei dati per definire le modalità operative del programma. I cluster di errore definiscono l’ordine di esecuzione dei subVI e mantengono anche le condizioni di errore che vengono verificate alla fine con il VI di gestione degli errori. Questo è un modo più efficiente di realizzare un programma e di gestire i dati in LabVIEW. Non solo lo schema a blocchi è più piccolo e più facile da leggere, ma trasferire i dati attraverso i fili di collegamento è il metodo di gestione migliore della memoria.

 National Instruments Corporation

3-25

LabVIEW Corso Base II


Lezione 3

Tecniche di gestione dei dati

E. DataSocket Finora in questa lezione avete imparato tre cose principali: y

Il modo più efficiente per gestire i dati nello schema a blocchi è tramite un collegamento diretto.

y

Le variabili locali possono essere usate per accedere ad oggetti del pannello frontale da posti diversi dello schema a blocchi.

y

Le variabili globali possono essere usate per passare i dati tra VI distinti senza utilizzare un collegamento.

Ci sono molti altri modi di gestire dati in LabVIEW. Questa lezione copre un altro metodo, DataSocket. DataSocket è una tecnologia di programmazione di Internet basata su protocollo TCP/IP che semplifica lo scambio di dati tra computer ed applicazioni. Con DataSocket potete trasferire dati su Internet in modo efficiente e rispondere a più utenti senza la complessità della programmazione TCP a basso livello. Quindi potete usare DataSocket per passare dati non solo tra VI in esecuzione sulla stessa macchina ma anche tra computer distinti che sono collegati tramite la rete. Potete anche utilizzare DataSocket per comunicare tra LabVIEW ed un qualsiasi altro linguaggio di programmazione che supporta il protocollo TCP/IP, come Excel, Visual Basic, C e così via.

Come opera DataSocket? DataSocket consiste in due componenti, DataSocket API e DataSocket Server. DataSocket API presenta una singola interfaccia utente per la comunicazione con diversi tipi di dati provenienti da altri linguaggi di programmazione. DataSocket Server semplifica la comunicazione in Internet tramite la gestione della programmazione del protocollo TCP/IP.

DataSocket API DataSocket è un singolo API, unificato per l’utente finale, basato su URL per il collegamento a misure e a dati di automazione che si possono trovare dovunque, su un computer locale o su Internet. E’ un API indipendente dal protocollo, dal linguaggio e dal sistema operativo, progettato per semplificare la gestione di dati binari. Il DataSocket API viene implementato affinché possiate utilizzarlo in ogni ambiente di programmazione e con un qualsiasi sistema operativo. Il DataSocket API converte automaticamente le vostre misure in una sequenza di byte che viene inviata in rete. L’applicazione DataSocket converte la sequenza di byte nella sua forma originaria. Questa conversione automatica elimina la complessità della rete, che comporta la scrittura di una gran quantità di codice quando utilizzate librerie TCP/IP.

LabVIEW Corso Base II

3-26

 National Instruments Corporation


Lezione 3

Tecniche di gestione dei dati

DataSocket Server Il DataSocket Server è un componente leggero, stand-alone con cui i programmi utilizzanti DataSocket API possono trasmettere misure in corso a velocità elevate, usando Internet, a diversi client remoti contemporaneamente. Il DataSocket Server semplifica la programmazione TCP gestendo in maniera automatica connessioni su client. Potete accedere a DataSocket Server selezionando Start»Programs»National Instruments» DataSocket»DataSocket Server. Quando selezionate il DataSocket Server, si apre la finestra seguente e il server va in esecuzione.

Come mostrato sopra, il DataSocket Server tiene traccia del numero di client connessi e del numero di pacchetti di dati che sono stati scambiati. Potete scegliere di avere DataSocket Server operante in maniera non visibile selezionando Hide DataSocket Server dal menu Server. La trasmissione dati con DataSocket Server richiede tre attori—chi pubblica, il DataSocket Server e chi sottoscrive. Un’applicazione di pubblicazione utilizza DataSocket API per scrivere dati sul server. Un’applicazione di sottoscrizione utilizza DataSocket API per leggere dati dal server. Entrambe le applicazioni sono client nei confronti di DataSocket Server. I tre attori possono risiedere sulla stessa macchina ma è più frequente il caso che si trovino su macchine diverse. La possibilità di eseguire il DataSocket Server su un’altra macchina aumenta le prestazioni e fornisce la sicurezza isolando collegamenti di rete dalla vostra applicazione di misura. Il DataSocket Server limita l’accesso ai dati amministrando la sicurezza e i permessi. Con DataSocket potete condividere misure riservate su Internet impedendo l’accesso a persone non autorizzate.

Una URL per ogni sorgente di dati Prima che possiate iniziare ad utilizzare le funzioni DataSocket in LabVIEW, dovete capire come DataSocket si collega a differenti tecnologie di I/O e come nominare il dispositivo o la risorsa con la quale state scambiando dati. Per esempio nell’I/O di file il nome della risorsa è un percorso ad un file. Per il TCP/IP ci sono due parti del nome, un nome di macchina e un numero di porta. Con DataSocket, il nome della risorsa è sotto forma di URL, o uniform resource locator, simile all’indirizzo web utilizzato da un browser. Considerate come potrebbe interpretare un

 National Instruments Corporation

3-27

LabVIEW Corso Base II


Lezione 3

Tecniche di gestione dei dati

browser la URL ni.com/datasocket. Essa dice al browser di usare un protocollo basato TCP/IP chiamato HTTP, o hyper text transfer protocol, per collegarsi alla macchina denominata ni.com e prendere la pagina web chiamata datasocket. La URL è differente dai nomi utilizzati dalla maggior parte delle tecnologie di I/O perché non solo definisce a che cosa siete interessati ma indica anche come prenderlo. Il come, codificato nella prima parte della URL, viene chiamato metodo di accesso del protocollo. I web browser utilizzano tipicamente molti metodi di accesso, come HTTP, HTTPS (encrypted HTTP), FTP (file transfer protocol) e FILE (per leggere file sulla vostra macchina locale). DataSocket presenta lo stesso approccio per le misure. Per esempio, DataSocket può utilizzare la URL seguente per collegarsi ad un insieme di dati: dstp://mytestmachine/wave1. Il dstp all’inizio dice a DataSocket di aprire un collegamento con il protocollo di trasferimento data socket e di prendere un segnale denominato wave1. Se la URL fosse iniziata con file, i dati sarebbero stati presi da un file invece che dal DataSocket server.

Le funzioni DataSocket DataSocket API in LabVIEW è un insieme di funzioni e di VI che si trova nella palette Functions»Communication»DataSocket. La comunicazione in DataSocket è semplice. Potete eseguire tutte le operazioni di base con le funzioni e i VI seguenti.

La funzione DataSocket Write scrive l’ingresso dei dati sulla URL specificata. I dati possono essere in un qualsiasi formato del tipo dato di LabVIEW. I cluster error in e error out mantengono le condizioni di errore.

La funzione DataSocket Read legge i dati di tipo specificato dalla URL specificata. Il valore ms timeout di default è di 10 s e potete specificare un diverso valore di timeout. Il booleano timed out indica TRUE se questa funzione è scaduta. I cluster error in e error out mantengono le condizioni di errore.

LabVIEW Corso Base II

3-28

 National Instruments Corporation


Lezione 3

Tecniche di gestione dei dati

Il VI DataSocket Select URL viene usato solo quando non sapete la URL di un oggetto e volete cercare una sorgente di dati o una destinazione da finestra di dialogo.

Collegamento DataSocket diretto ad un qualsiasi oggetto del pannello Non avete bisogno di utilizzare le funzioni DataSocket Write e DataSocket Read per pubblicare e sottoscrivere dati utilizzando DataSocket Server. Potete stabilire un collegamento DataSocket diretto da un oggetto del pannello frontale. Cliccate con il tasto destro del mouse su un oggetto del pannello frontale e selezionate Data Operations»DataSocket Connection per Visualizzare la finestra di dialogo DataSocket Connection. Nel campo Connect To, inserite una URL e scegliete se volete pubblicare, sottoscrivere o entrambe le cose. Quindi contrassegnate il riquadro Enabled. Quando cliccate sul pulsante Attach, l’oggetto del pannello frontale diventa disponibile alla URL specificata nel DataSocket Server. Compare un piccolo rettangolo nella parte superiore destra del controllo o dell’indicatore, ad indicare lo stato del collegamento DataSocket. Se il rettangolo è verde, il collegamento è buono.

Se il rettangolo è grigio, non c’è collegamento al server. Se il rettangolo è rosso, c’è un errore nel collegamento. Ora realizzate due VI che trasferiscono dati utilizzando DataSocket.

 National Instruments Corporation

3-29

LabVIEW Corso Base II


Lezione 3

Tecniche di gestione dei dati

Esercitazione 3-5

VI DS Generate Data e VI DS Read Data

Obiettivo: Realizzare due VI che utilizzino DataSocket per trasferire i dati

Realizzate un VI che generi un numero casuale e visualizzi questo valore su uno strumento misuratore e invii i dati ad una URL DataSocket. Quindi realizzate un secondo VI che legga la URL DataSocket e visualizzi il valore in un indicatore tipo slide. Infine, utilizzate le caratteristiche di pubblicazione e di sottoscrizione automatica per inviare dati su un collegamento DataSocket.

Pannello frontale

1. Aprite un nuovo VI e realizzate il pannello frontale mostrato sopra. L’oggetto URL è un controllo di stringa.

Schema a blocchi

2. Aprite e realizzate lo schema a blocchi mostrato sopra utilizzando i componenti seguenti. a. Ciclo While, che si trova nella palette Functions»StructuresDetermina l’esecuzione continua del VI finché non viene premuto il pulsante di Stop. Cliccate con il tasto destro del mouse sul terminale Conditional e selezionate Stop If True. b. Funzione Wait Until Next ms Multiple, che si trova nella palette Functions»Time & DialogDetermina l’esecuzione del ciclo While una volta al secondo. Create la costante cliccando con il tasto destro del mouse sul terminale input e selezionando Create»Constant.

LabVIEW Corso Base II

3-30

 National Instruments Corporation


Lezione 3

Tecniche di gestione dei dati

c. Funzione Random Number (0-1), che si trova nella palette Functions»NumericCrea un numero casuale tra zero e uno. d. Funzione Multiply, che si trova nella palette Functions»NumericMoltiplica due numeri e viene usato qui per riportare il numero casuale nella scala tra 0 e 10. e. Funzione DataSocket Write, che si trova nella palette Functions»Communication»DataSocketScrive il numero casuale sulla URL specificata. f. VI Simple Error Handler, che si trova nella palette Functions»Time & DialogApre una finestra di dialogo in caso di errore e visualizza le informazioni di errore. 3. Salvate questo VI come DS Generate Data.vi. 4. Ora realizzate il secondo VI per leggere il valore casuale.

Pannello frontale

1. Aprite un nuovo VI e realizzate il pannello frontale mostrato sopra. L’oggetto URL è un controllo di stringa. Per mostrare la scala sull’indicatore a scorrimento, cliccateci sopra con il tasto destro del mouse e selezionate Scale»Style.

Schema a blocchi

2. Aprite e realizzate lo schema a blocchi mostrato sopra utilizzando i componenti seguenti: a. Ciclo While, che si trova nella palette Functions»StructuresDetermina l’esecuzione continua del VI finché non viene premuto il pulsante di Stop. Cliccate con il tasto destro del mouse sul terminale Conditional e selezionate Stop If True.

 National Instruments Corporation

3-31

LabVIEW Corso Base II


Lezione 3

Tecniche di gestione dei dati

b. Funzione Wait Until Next ms Multiple, che si trova nella palette Functions»Time & DialogImpone l’esecuzione del ciclo ogni secondo. Create la costante cliccando con il tasto destro del mouse sul terminale input e selezionando Create»Constant. c. Costante Numeric, che si trova nella palette Functions»NumericCrea il tipo di dato corretto per leggere il valore attraverso DataSocket. Assicuratevi che questa costante sia una DBL cliccandoci sopra con il tasto destro del mouse e selezionando Representation»Double Precision dal menu rapido. d. Funzione DataSocket Read, che si trova nella palette Functions»Communication»DataSocketLegge il numero casuale dalla URL specificata. e. VI Simple Error Handler, che si trova nella palette Functions»Time & DialogApre una finestra di dialogo in caso di errore e visualizza le informazioni di errore. 3. Salvate il VI come DS Read Data.vi. 4. Posizionate i pannelli frontali dei VI DS Generate Data e DS Read Data in maniera tale che li possiate vedere entrambi. 5. Avviate DataSocket Server dal menu Start e selezionate Start»Programs»National Instruments»DataSocket»DataSocket Server. Compare la finestra DataSocket Server, simile a quella mostrata sotto.

6. Tornate ai due pannelli frontali dei VI ed assicuratevi che siano state inserite le stesse URL in entrambi i VI. y

dstp—Il protocollo di trasferimento DataSocket.

y

localhost—Il computer che state utilizzando.

y

data1—il nome dato al numero casuale che invierete.

7. Avviate i VI DS Generate Data e DS Read Data. La finestra DataSocket Server mostra un processo connesso e il valore Number of packets si incrementa ogni secondo quando il misuratore e il cursore mostrano gli stessi numeri casuali. 8. Arrestate entrambi i VI quando avete finito. Ora modificate i VI per utilizzare la pubblicazione e sottoscrizione automatiche degli oggetti del pannello frontale.

LabVIEW Corso Base II

3-32

 National Instruments Corporation


Lezione 3

Tecniche di gestione dei dati

Pannello frontale

9. Inserite un indicatore digitale sul pannello forntale del VI DS Read Data come mostrato sopra. 10. Cliccate con il tasto destro del mouse sul nuovo indicatore digitale e selezionate Data Operations»DataSocket Connection dal menu rapido. Inserite i valori seguenti.

11. Cliccate sul pulsante Attach e un piccolo rettangolo grigio appare in alto sul lato destro dell’indicatore digitale. Ciò indica che la connessione DataSocket non è attiva. 12. Avviate nuovamente i VI DS Generate Data e DS Read Data. Il rettangolo vicino all’indicatore Random Number diventa verde e il valore corrisponde ai valori mostrati nel misuratore e nell’indicatore a scorrimento. Nota Se il vostro computer è in rete con altri computer utilizzati in aula, potete

digitare nelle URL gli indirizzi di altre macchine in rete e trasferire i valori tra computer della classe. Ricordate che potete utilizzare un qualsiasi linguaggio di programmazione o sistema operativo con le connessioni DataSocket. Andate alla pagina web su DataSocket della National Instruments all’indirizzo ni.com/datasocket, per ulteriori informazioni. 13. Arrestate e chiudete entrambi i VI e il DataSocket Server quando avete finito.

Fine dell’esercitazione 3-5

 National Instruments Corporation

3-33

LabVIEW Corso Base II


Lezione 3

Tecniche di gestione dei dati

Sommario, trucchi e consigli

LabVIEW Corso Base II

y

DataSocket è un metodo di trasferimento dati basato su Internet che è indipendente dalla piattaforma, dal linguaggio di programmazione e dal protocollo. DataSocket utilizza URL per definire una connessione dati specifica.

y

DataSocket consiste in due parti, DataSocket API e DataSocket Server.

y

DataSocket API di LabVIEW consiste nella palette Functions»Communication»DataSocket. Le due funzioni principali sono DataSocket Write e DataSocket Read.

y

Potete consentire ad ogni controllo o indicatore di pubblicare e/o sottoscrivere dati attraverso DataSocket Server cliccando sopra quell’oggetto del pannello frontale con il tasto destro del mouse e utilizzando la finestra Data Operations»DataSocket Connection.

y

Potete utilizzare variabili globali e locali per accedere ad un determinato insieme di valori nell’ambito della vostra applicazione in LabVIEW. Queste variabili scambiano informazioni tra diversi posti della vostra applicazione quando non potete utilizzare collegamenti diretti.

y

Le variabili locali accedono agli oggetti del pannello frontale del VI in cui avete inserito la variabile locale.

y

Quando scrivete su una variabile locale, aggiornate il corrispondente controllo o indicatore del pannello frontale.

y

Quando leggete da una variabile locale, leggete il valore corrente del corrispondente controllo o indicatore del pannello frontale.

y

Le variabili globali sono oggetti interni a LabVIEW che passano i dati tra VI. Essi possiedono dei pannelli frontali in cui immagazzinano i loro dati.

y

Scrivete sempre un valore sulla variabile globale prima di leggere da essa, per fare in modo che abbia un valore iniziale noto quando accedete ad essa.

y

Scrivete su variabili locali e globali da posizioni diverse rispetto a quelle da cui le leggete, per evitare situazioni di conflitto.

y

Utilizzate variabili locali e globali solo quando necessario. Un abuso può causare un’esecuzione più lenta ed un utilizzazione inefficiente della memoria nell’ambito della vostra applicazione.

y

Le variabili locali e globali non usano il flusso di dati, e quindi se le usate troppo di frequente, potete rendere i vostri schemi a blocchi di difficile comprensione per altre persone. Utilizzate variabili locali e globali in maniera sapiente.

3-34

 National Instruments Corporation


Lezione 3

Tecniche di gestione dei dati

Esercizi aggiuntivi 3-6 Aprite il VI In Range. Esaminate lo schema a blocchi. Questo semplice VI genera cinque numeri casuali e accende un LED se l’ultimo numero generato si trova tra 0.1 e 0.9. Avviate il VI diverse volte fino a quando si accende il LED. Notate che se il LED si accende durante un’esecuzione del VI, rimane acceso durante la seconda esecuzione finché il ciclo For è terminato e l’ultimo numero viene passato alla funzione In Range?, che si trova nella palette Functions»Comparison. Modificate il VI utilizzando una variabile locale affinché il LED si spenga quando il VI viene avviato. Salvate il vostro VI dopo che avete finito. 3-7 Come già detto prima, il trasferimento dati tramite una variabile globale non è un processo sincronizzato. Se provate a leggere dati da una variabile globale troppo rapidamente o troppo lentamente, potreste leggere copie dello stesso valore o perdere completamente dei dati. Questo è stato visto nell’esercitazione 3-4, in cui potevate regolare il ritardo tra le letture della variabile globale Data Value per ottenere dati più velocemente o più lentamente. Modificate Data to Global e Display Global Data, nell’esercitazione 3-3 e 3-4, affinché utilizzino un protocollo di handshake per garantire che i dati non vengano saltati o letti più volte. Impostate un ulteriore booleano in My Global.vi denominato Handshake, che verrà usato per indicare quando i VI sono pronti per inviare o ricevere dati. Nel VI Data to Global, assicuratevi di impostare la variabile globale booleana Handshake su FALSE prima che passi un nuovo dato al numerico Data Value. In Display Global Data impostate il booleano Handshake su TRUE prima che tenti di leggere il dato numerico. In entrambi i VI, assicuratevi di impostare il booleano Handshake in modo tale che altri VI sappiano quando accedere alla variabile. Chiamate

la nuova variabile globale booleana Handshake Global.vi e gli altri due VI Data to Handshake Global.vi e Display Handshake Global.vi.

Sfida 3-8 Aprite il VI Select and Plot Waveform dall’esercitazione 3-2. Utilizzate le informazioni alla fine della Sezione D per riscrivere questo VI per non utilizzare più la struttura Sequence e le variabili locali. Suggerimento Utilizzate un’architettura con macchine a stati e trasferite i dati

utilizzando i registri a scorrimento o collegamenti diretti. Salvate il VI come Select and Plot Waveform2.vi.

 National Instruments Corporation

3-35

LabVIEW Corso Base II


Lezione 3

Tecniche di gestione dei dati

Note

LabVIEW Corso Base II

3-36

ď›™ National Instruments Corporation


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.