Tutorial: LabVIEW


Nozioni fondamentali

Gestione strumentazione



Istruzioni per lo svolgimento delle esercitazioni

Vengono proposte alcune esercitazioni che permettono di acquisire familiarità con l'ambiente di sviluppo LabVIEW.

Questo gruppo di esercitazioni permette di acquisire familiarità con l'ambiente stesso, con particolare riferimento alla programmazione nell'ambiente grafico associato a LabVIEW.  A tal fine verranno presi in esame i principali costrutti linguistici. Per ciascuno dei costrutti verranno proposti alcuni Virtual Instrument (VI) di esempio e alcuni esercizi.


Esercizi proposti

Vengono proposti alcuni esercizi che consentono di acquistare familiarità con le principali caratteristiche dell'ambiente LabVIEW.  

Prima di passare alla soluzione degli esercizi, si consiglia di prendere visione di pannello frontale e block diagram dei semplici programmi dimostrativi messi a disposizione i quali illustrano le principali funzionalità fornite dall'ambiente di programmazione grafico associato a LabVIEW.


Primi programmi in ambiente LabVIEW

Esercizio 1

Realizzare un VI (somma.vi) che esegua la somma tra due numeri, completo di pannello frontale, icona, connettore, data diagram e help in linea. Provare a eseguire tale VI in “run singolo”, “run continuo” e verificare risultati, ( “operating tool” per modificare valori). Verificare l’effetto degli strumenti "highlight execution", "probe", "breakpoint".

Esercizio 2

Realizzare un VI (somma3.vi) che esegua la somma di tre numeri e mostri a video il risultato. Il pannello frontale deve contenere tre controlli, ad esempio di tipo numerico, corrispondenti ai tre valori numerici da sommare e un indicatore corrispondente al risultato della somma. Il VI deve essere completo di pannello frontale, icona, connettore, data diagram e help in linea.

Esercizio 3

Realizzare un VI che mostri contemporaneamente il risultato di una operazione di somma, differenza, prodotto e quoziente tra due dati di ingresso di tipo numerico  

Suggerimenti

  • Per la realizzazione dell'icona si ricorda di eseguire "popup" sull'area dell'icona del pannello frontale e selezionare la voce di menu "edit icon".
  • Per la definizione del connettore, si ricorda di eseguire "popup" sull'area dell'icona del pannello frontale e selezionare la voce di menu "show connector", indi associare le aree del connettore a indicatori e controlli del pannelo frontale mediante operazioni di click con il pulsante sinistro del mouse alternativamente sull'area del connettore e sull'elemento del pannello frontale da porre in corrispondenza.
  • Per la realizzazione dell'help in linea si può selezionare la voce di menu "window/showVI info".

Preparazione di un pannello frontale

Si realizzi un VI avente pannello frontale simile a quello rappresentato nella figura seguente.
Si vedano le copie delle trasparenze dalle lezioni

Figura 1. Pannello frontale proposto per lo svolgimento dell'esercitazione

 

Con riferimento alla figura si osservi che:

  • il ring menu contiene due elementi “somma”e “differenza”
  • il led “abilitazione” è rosso se in stato “true”
  • osservare scale e formati delle manopole e dell’indicatore a lancetta

Strutture per l'esecuzione di cicli

Esercizio 1

Riprodurre il VI rappresentato nelle figure seguenti provare ad apportare le seguenti modifiche e osservare il risultato che si ottiene eseguendo il programma ("run" e "highlight execution"+ "run").  

si vedano le copie delle trasparenze dalle lezioni  front panel si vedano le copie delle trasparenze dalle lezioni  block diagram

 

  • portare il solo indicatore di conteggio fuori dal ciclo
  • portare il solo controllo associato al pulsante "stop" fuori dal ciclo
  • portare indicatore di conteggio e controllo associato a pulsante "stop" fuori dal ciclo
  • sostituire il bottone “stop” con uno switch (bistabile)
  • ripetere i punti precedenti sostituendo al ciclo “while loop”un ciclo “for loop”

Esercizio 2

Utilizzando una struttura "for loop", realizzare un VI che esegue la somma di N numeri compresi tra 0 e N-1 ovvero fornisca il risultato dell’operazione 1+2+…+ (N-1)  

Esercizio 3

Utilizzando una struttura "for loop", realizzare un VI che esegue il calcolo del fattoriale di un numero intero N.

Esercizio 4

Modificare tale VI in modo che un azione sul pulsante "stop VI" permetta di fermare il VI senza dover attendere la fine dell'esecuzione dei due cicli conseguente a un azione sul pannello frontale. Modificare inoltre lo stesso VI in modo che sia siano mostrati a video i valori assunti dai contatori di iterazione quando viene fermato il VI.


Struttura case

Esercizio 1

Costruire un VI che paragoni due input numerici: A, B. Sul pannello frontale si devono accendere alternativamente tre led a seconda che risulti A < B, A = B, A > B.

Esercizio 2

Realizzare VI che permette il calcolo “A op B”, dove op è un’operazione scelta tra somma, differenza, prodotto, quoziente,mentre A e B sono gli operandi coinvolti nell'operazione stessa. Il VI deve gestire la possibilita di divisione per 0.

Il pannello fronale di tale VI potrebbe essere simile a quello rappresentato nella figura seguente si vedano le copie delle trasparenze dalle lezioni  

Impiegare il pannello frontale relativo all'esercizio "preparazione di un pannello frontale", il quale abbia il seguente comportamento:

  • il controllo di tipo ring determina quale operazione deve essere eseguita tra gli operandi "A"e "B", l'indicatore "risultato"deve contenere il risultato di tale operazione
  • l'interruttore "disabilita" disabilita l'esecuzione dell'operazione indicata dal controllore di tipo ring
  • il VI è in esecuzione continua e termina la propria esecuzione in corrispondenza ad un azione con il pulsante "exit"
  • opzionalmente configurare il VI in modo che durante l'esecuzione non sia possibile fermare il VI stesso agendo sulla barra di controllo dell'applicazione.

Struttura formula node

Modificare il VI "somma3.vi" proposto al paragrafo "primi programmi in ambiente LabVIEW" impiegando una struttura formula node per il calcolo della somma di tre elementi.


Vettori e matrici

Esercizio 1

Con riferimento al materiale illustrato a lezione, riprodurre un VI che illustra le modalità di accesso a un vettore mediante due cicli con indexing disabilitato e abilitato ripettivamente. 


Diagrammi e grafici

Esercizio 1

Realizzare un VI che permetta di rappresentare contemporaneamente le funzioni trigonometriche sin, cos, tan, sec utilizzando indicatori di tipo waveform chart.

Esercizio 2

Modificare il VI dell'esercizio precedente in modo da impiegare indicatori del tipo waveform graph.

Esercizio 3

Modificare il VI dell'esercizio precedente in modo che sia possibile impostare l’intervallo dell’asse X entro il quale rappresentare i dati.

Esercizio 4

Modificare il VI dell'esercizio precedente in modo che sia possibile rappresentare la funzione Asin(2pft+j), con A, f, j parametri impostabili da pannello frontale.


Manipolazione di stringhe

Esercizio 1

  •  
    • X = "V" (tensione), "I" (corrente), "R" (resistenza)
    • CC = "DC" (misura in DC) , "AC" (misura in AC)  se tipo_misura ="V", oppure "A"; altrimenti CC= "2W" (misura a 2 fili) "4W"(misura a 4 fili)
    • N rappresenta il numero di cifre significative con il quale viene eseguita la misura ed è compreso tra 1 e 5
    • tipo_misura può assumere uno tra i seguenti 3  valori: "VOLTAGE", "CURRENT", "RESISTANCE", a seconda del valore assunto dal sottocampo X della stringa di ingresso, con corrispondenza ovvia
    • condizione può assumere il valore "DC", oppure "AC", nel caso di tipo_misura = CURRENT o RESISTANCE, mentre può essere uguale a "2WIRE", o "4WIRE" nel caso in cui tipo_misura sia uguale a RESISTANCE; il tutto a seconda del valore assunto dal sottocampo CC della stringa di ingresso
    • valore è un dato numerico in formato floating point costituito da un numero casuale compreso fra 0 e 100 con un numero di cifre significative pari al sottocampo N della stringa di ingresso
  • Realizzare un VI ("falso multimetro.vi") che simuli la lettura di una indicazione da un multimetro ingressi : una stringa comando di due caratteri del tipo dove uscita: una stringa di risposta. Il VI genera in risposta una stringa del tipo "tipo_misura:condizione:valore", ad esempio:  

    input VI output VI
    VDC4 VOLTAGE:DC:12.34
    R2W3 RESISTANCE:2WIRE:1.23

     

    Verificare il VI costruendo un ulteriore VI ("comando falso multimetro.vi")che abbia un pannello frontale contenente appropriati menu di scelta per il tipo di misura (tensione, corrente, resistenza), per le condizione della msiura (AC/DC piuttosto che 2wire/4wire) e per i numero di cifre significative e che mostri la stringa di risposta fornita dall vi che simula il multimetro  

Esercizio 2

    Modificare il VI "string - analisi.vi" in modo che al posto dell'indicatore di tipo stringa sia presente un indicatore di tipo "flat button"sul quale compare la scritta "continua"quando lo strumento risponde con "DC" e "alternata", quando la stringa proveniente dall strumento contiene invece l'indicazione "AC"  

Esercizio 3

  •  
    • un indicatore del tipo stringa che fa comparire la scritta "tensione", "corrente", "resistenza" a seconda del valore assunto da tipo_misura
    • un indicatore del tipo stringa che mostra l'unità di misura (V,A,W) a seconda dei casi associati a tipo_misura
    • un indicatore del tipo stringa che contenga un indicazione del tipo "continua", "alternata", oppure "2 fili", "4 fili" a seconda del valore assunto da condizione
    • un indicatore del tipo numerico sul quale rappresentare il valore numerico associato dalla stringa di risposta
  • Modifcare ulteriormente il VI precedente in modo che possa accettare stringhe di risposta del tipo di quelle fornite dal VI dell'esercizio 1 ("falso multimetro.vi") il VI deve fornire delle indicazioni del tipo seguente: Il VI stesso dovrà essere verificato utilizzando il VI dell'esercizio 1 per la generazione di appropriate stringhe di risposta dello strumento, e aggiundendo al pannello frontale indicazioni del tipo di quelle proposte nella seconda parte dell'esercizio 1

 


Soluzioni ad alcuni degli esercizi proposti

Vengono proposte delle possibili soluzioni ad alcuni degli esercizi proposti. Nella presente guida, per completezza viene riportato anche il testo di ciascun esercizio proposto utilizzando un carattere tipografico come nella riga di esempio seguente: esempio di testo di un esercizio proposto.  

Elenco argomenti


Primi programmi in ambiente LabVIEW

Esercizio risolto 1  

Realizzare un VI (somma.vi) che esegua la somma tra due numeri, completo di pannello frontale, icona, connettore, data diagram e help in linea.

Si riportano nelle figure seguenti un possibile pannello frontale, diagramma a blocchi e icona e connettore.

si veda il vi somma.vi   somma.vi - pannello frontale si veda il vi somma.vi   somma.vi - diagramma a blocchi
si veda il vi somma.vi   somma.vi - icona si veda il vi somma.vi   somma.vi - connettore

 

Si osservi che:

  • per la realizzazione del pannello frontale si sono disposti medianti operazioni di drag & drop i seguenti oggetti:
    • due indicatori di tipo numerico ("A" e "B")
    • un controllore di tipo numerico ("C")
    • una label ("somma di A+B")
    • le label "A", "B", "C", inserite agendo sugli oggetti corrispondenti con operazioni di popup, e quindi selezionando la voce di menu "show / label"
  • per la realizzazione del diagramma a blocchi si è impiegato un nodo di somma, disponibile dal menu "functions palette / numeric / add", mediante operazione di drag & drop. Le connessioni sono state ottenute avendo prima attivato il "wiring tool" (rocchetto) dalla "tools palette", e poi avendo selezionati gli elementi da connettere tra loro mediante operazioni di click con il mouse.
  • per la realizzazione dell'icona si può procedere attivando il menu di dialogo "edit icon" (click destro sull'area dell'icona della finestra contenente il pannello frontale)
  • per la definizione del connettore si può procedere attivando il menu "show connector" (popup su area icona), e facendo corrispondere elementi sul pannello frontale a aree del connettore mediante operazioni di click con il mouse alternativamente sul pannello frontale e sul connettore
  • l'help in linea viene compilato utilizzando la finestra di dialogo che compare selezionando il menu "windows / show vi info". Per verificare la correttezza di tale operazione si può procedere come segue:
    • attivare la visualizzazione dell'help in linea (menu "help / show help") e verificare il suo funzionamento posizionando il puntatore sopra il nodo di somma presente sul diagramma a blocchi.
    • aprire un nuovo VI (menu "file / new")
    • aprire il diagramma a blocchi del nuovo VI
    • inserire nel diagramma a blocchi il VI precedentemente realizzato "somma.vi" mediante drag & drop dalla "functions palette / select a VI" e quindi selezionando il file "somma.vi"
    • posizionare il puntatore sopra al nodo che rappresenta il vi "somma.vi", dovrebbe venire aggiornata la finestra contenente l'help in linea contestuale, la quale permette di verificare la correttezza delle operazioni svolte
  • Si osservi infine che se non le "palette tools" e "palette functions" possono essere attivate o disattivate agendo tramite le corrispondenti voci del menu "windows"

 

Provare a eseguire tale VI in “run singolo”, “run continuo” e verificare risultati, (“operating tool” per modificare valori).

Si tratta semplicemente di agire con la barra degli strumenti posta sulla finestra del pannello frontale, e attivare il VI (bottone "run") o attivare il VI in "run continuo". Si noti che è necessario selezionare preventivamente il tool "operating" (icona che raffigura una mano con dito indice steso) dalla "tools palette" in modo da rendere possibile l'interazione con gli elementi del pannello frontale. Si osservi inoltre il differente comportamento del VI se attivato in modo "run", rispetto al modo "run continuo" provando a modificare il valore dei controllori "A"e "B" posto sul pannello frontale del VI stesso.

front panel toolbar di LabVIEW barra degli strumenti del pannello frontale

  • LV run button bottone di run
  • LV continuosu run button bottone di continuous run
  • LV stop button bottone di stop
  • LV pause button bottone di pause
  • LV icona Vi corrente in esecuzione icona la quale evidenzia che il VI corrente è in esecuzione

  Verificare l’effetto degli strumenti "highlight execution", "probe", "breakpoint".   Lo strumento "highlight execution" permette di verificare la modalità di esecuzione del VI mediante una semplice animazione, nella quale alcune palline evidenziano il flusso di dati tra i nodi di elaborazione. A tal fine si deve agire sulla toolbar del diagramma a blocchi e selezionare lo strumento "highlight execution"(icona che raffigura una lampadina), quindi eseguire il VI stesso.

LV block diagram toolbar barra degli strumenti del diagramma a blocchi

  • highlight execution button bottone highlight execution
  • LV button execution highlighted bottone highlight execution selezionato

Si ricorda che gli strumenti "probe" e "breakpoint" sono disponibile dalla "tools palette". Il primo dei due permette di associare una finestra di rappresentazione dei dati a un connettore; quando dei dati transitano lungo il connettore selezionato, la finstra corrispondente viene aggiornata. Lo strumento "breakpoint",  permette di inserire nel diagramma a blocchi un oggetto "segnale di stop", ad esempio lungo un connettore, il quale determina l'arresto (pause) del VI quando passano dei dati attraverso il segnale di stop stesso. Per verificare l'effetto associato a tali strumenti si provi a posizionare un "breakpoint" e un "probe" in un punto a piacere a monte del nodo di somma, e si verifichi l'effetto associato a tali oggetti eseguendo il VI in modalità "run", e "run continuo".


Preparazione di un pannello frontale

Si realizzi un VI avente pannello frontale simile a quello rappresentato nella figura seguente. pannello frontale da realizzare  

Figura 1. Pannello frontale proposto per lo svolgimento dell'esercitazione

Si osservi che per la preparazione della cornice che racchiude i vari elementi grafici presenti sul pannello frontale si è utilizzato un bottone ("controls palette / decorations / decreased box"), ilquale è stato successivamente ingrandito e posizionato in modo che esso stesso contenga tutti gli indicatori e controlli presenti su pannello frontale, infine si è portato il bottone in secondo piano (move to back dal menu della front panel toolbar per il posizionamento di oggetti)

front panel toolbar di LabVIEW barra degli strumenti del pannello frontale

front panel toolbar - object ordering menu per la determinazione dell'ordine di rappresentazione degli oggetti presenti su pannello frontale  


Strutture per l'esecuzione di cicli

Esercizio risolto 1  

Riprodurre il VI rappresentato nelle figure seguenti:

 

si vedano le copie delle trasparenze dalle lezioni   front panel si vedano le copie delle trasparenze dalle lezioni   block diagram

 Provare ad apportare le seguenti modifiche e osservare il risultato che si ottiene eseguendo il programma ("run" e "highlight execution"+ "run")

  • portare il solo indicatore di conteggio fuori dal ciclo
  • portare il solo controllo associato al pulsante "stop" fuori dal ciclo
  • portare indicatore di conteggio e controllo associato a pulsante "stop" fuori dal ciclo
  • sostituire il bottone “stop” con uno switch (bistabile)
  • ripetere i punti precedenti sostituendo al ciclo “while loop”un ciclo “for loop”

Lo scopo principale del presente esercizio è di acquisire familiarità con la struttura "ciclo while", osservando come avviene il passaggio di dati attraverso la struttura che rappresenta il ciclo stesso (quando e come vengono passati i dati all'interno o all'esterno della struttura while ?)   

Esercizio risolto 2  

Utilizzando una struttura "for loop", realizzare un VI che esegue la somma di N numeri compresi tra 0 e N-1 ovvero fornisca il risultato dell’operazione 1+2+…+ (N-1)

Per poter risolvere il probelma proposto è necessario fare uso di un registro a scorrimento (shift register) all'interno di un ciclo for loop.

Esercizio risolto 3  

Utilizzando una struttura "for loop", realizzare un VI che esegue il calcolo del fattoriale di un numero intero N.

Per poter risolvere il probelma proposto è necessario fare uso di un registro a scorrimento (shift register) all'interno di un ciclo for loop.


Struttura case

Esercizio risolto 1  

Realizzare VI che permette il calcolo “A op B”, dove op è un’operazione scelta tra somma, differenza, prodotto, quoziente,mentre A e B sono gli operandi coinvolti nell'operazione stessa. Il VI deve gestire la possibilita di divisione per 0.

Il pannello fronale di tale VI potrebbe essere simile a quello rappresentato nella figura seguente

si vedano le copie delle trasparenze dalle lezioni


Il multimetro digitale  HP3478A : introduzione alla programmazione

Il multimetro hp3478A è uno strumento programmabile mediante bus 488. Esso offre una risoluzione compresa tra 3 ½ e 5 ½ digits per misure di:

  • tensioni AC/DC
  • correnti AC/DC
  • resistenze in modalità 2 o 4 fili.

Le principali caratteristiche tecniche del multimetro sono riassunte nella seguente tabella.    

Principali caratteristiche tecniche del multimetro HP3478A
TIPO DI MISURA CARATTERISTICHE TECNICHE
DC VOLTS 100 nV resolution (30 mV range) to 300V Full Scale Zin>10^10Ω , 30 mV,300 mV, 3 V range 10 MΩ ± 1%, 30 V, 300 V range
AC VOLTS 1μ V resolution (300 mV range) to 300V Full Scale True RMS Bandwidth 20 Hz to 100 KHz (300 KHz on 30 V range) Zin: 1MΩ ± 1%, in parallel with 75 pF
DC AMPS 1A resolution (300 mA range) to 3 A Full Scale maximum shunt resistance = 0.3Ω  maximum burden at full scale =< 900mV
AC AMPS 1μ A resolution (300 mA range) to 3 A Full Scale maximum shunt resistance = 0.3Ω  maximum burden at full scale =< 900mV Bandwidth 20 Hz to 20 KHz
OHMS 100 resolution (30 Ω range) to 30 MΩ Full Scale Open Circuite Voltage: < 6.3 V Current through Rx : 30Ω , 300Ω , 3KΩ range – 1mA 30KΩ range – 100m A 300KΩ range – 10μA 3MΩ range – 1μA 30MΩ range – 100 nA

Si riportano ora i comandi principali per il controllo attraverso interfaccia IEEE-488.

 

Principali comandi del multimetro HP 3478A
TIPO COMANDO DESCRIZIONE SINTASSI COMANDO IEEE 488
Calibrazione La calibrazione elettronica viene fatta applicando una tensione nota (corrente o resistenza) e comunicando l’esatto valore allo strumento; viene poi calcolato e memorizzato nella memoria interna una costante di aggiustamento per la correzionedelle successive misure
Misure di corrente misure di corrente DC mode, AC mode F5 , F6
Misure di tensione misure di tensione DC mode, AC mode F1 , F2
Misure di resistenza misure di resistenza 2-wire ohms mode, 4-wire ohms mode F3 , F4
Risoluzione risoluzione della misura: 3 ½ ,4 ½, 5 ½ digit dislay N3, N4, N5
Autozero permette di eliminare gli errori generati dagli offset interni dello strumento; questo rende le misure molto accurate, a scapito di un tempo di misura che risulta doppio se l’autozero è abilitato Z0 (autozero OFF) Z1 (autozero ON)
Autorange seleziona automaticamente la portata RA
Modalità di trigger il trigger è un segnale che causa la lettura di una misura. Ci sono tre modalità di triggering:
  • Internal trigger: il hp3478A genera internamente il segnale di trigger. La frequenza con cui vengono effettuate le misure è la massima. Comando HP-IB: T1.
  • Single trigger: ogni misura viene effettuata premendo il tasto single trigger key sul pannello frontale dello strumento. Comando HP-IB: T3.
  • External trigger: uguale al single trigger con la differenza che il segnale è applicato al connettore BNC sul retro del multimetro. Comando HP-IB:T2.
T1 T3 T2

  Le portate disponibili sono riassunte nella tabella:  

Portate del multimetro HP3478A
FUNCTION RANGE SINTASSI COMANDO IEEE 488 DISPLAY INDICATION
DC Volts 30 mV, 300 mV 3V, 30V, 300V R-2, R-1 R0, R1, R2 MVDC, VDC
AC Volts 300 mV,3V, 30V, 300V R-1,R0, R1, R2 MVAC, ADC
DC Current 300mA, 3A R-1, R0 MADC, ADC
AC Current 300mA, 3A R-1, R0 MAAC, AAC
Resistance 30Ω , 300Ω , 3KΩ , 30KΩ  300KΩ, 3MΩ , 30MΩ OHM, KOHM MOHM R1, R2, R3, R4, R5, R6, R7
Autorange Seleziona automaticamente la portata RA  

 


Formato delle istruzioni accettate dal multimetro HP3478A

Una istruzione da inviare al multimetro è costituita da una stringa composta di al più tre parti: operation mnemonic, qualifier, data. Esempio : D2 è composto dall’operatore "D" e qualificatore 2 . 

I dati o messaggi inviati dallo strumento sono tutti di 13 byte in formato stringa ed hanno la seguente struttura:

  • misura letta ± d.dddddE± d CR LF
  • overload + 9.99999E+ 9 CR LF.

Il carattere d rappresenta un singolo digit. Se lo strumento opera in "4 ½ digit mode", l’ultima cifra prima del carattere "E" è 0, se lo strumento è configurato in modalità "3 ½ digit mode" le ultime due cifre sono 0. Più istruzioni consecutive non necessitano di separatori.

Esempio: F2RAZ1N4T3CR LF.

  • F2: configura lo strumento per la misura di tensione AC
  • RA: seleziona automaticamente la portata
  • Z1: modalità autozero off
  • N4: 4 ½ digit display
  • T3: modalità single trigger
  • CR LF: terminatori istruzione (Carriage Return, Line Feed).

Service request (SRQ)

Una importante caratteristica del multimetro è che lo si può programmare in modo che lo strumento stesso interrompa il controller quando si verificano certe condizioni. Naturalmente il controller deve essere programmato per rispondere alle interruzioni. Il comando Require Service Message (SRQ) è usato per tale scopo. SRQ è mandato su una singola linea del bus GPIB chiamata SRQ line. Il multimetro deve essere programmato per ricevere/generare le interruzioni prima che le condizioni che le generano possano iniziare ad avere luogo. La seguente lista illustra le sei possibili condizioni per cui lo strumento può generare interrupt.

  • Power-on/Reset: il multimetro HP3478A interrompe il controller quando viene a mancare l’alimentazione, o riceve un Device Clear, o se il HP3478A è stato resettato.
  • Cal Failure: il hp3478A interrompe il controller se un tentativo di calibrazione è fallito.
  • Front Panel Keyboard: provocata dalla pressione del tasto SRQ sul pannello frontale dello strumento.
  • Hardware Error: se si verifica un errore.
  • Syntax Error: se il controller invia una istruzione non valida allo strumento.
  • Data Ready: il DMM HP3478A interrompe il controller dopo ogni misura effettuata.

Status Register

Lo Status Register può essere utilizzato per stabilire quale fra le sei condizioni possibili ha causato interruzioni. E’ possibile che uno o più bits dello status register siano a livello 1 senza per questo che il HP3478A abbia provocato un interrupt. L’interrupt viene generato se la SRQ mask era stata in precedenza settata per segnalare qualche particolare condizione fra quelle viste nel paragrafo precedente. Se una condizione corrispondente a un bit impostato ad 1 della maschera si verifica, allora il bit 6 dello status register si porta al valore 1. Si noti che il controllore deve essere in grado di rispondere al segnale SRQ.    

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Power-on

Reset

SRQ Cal

Failed

Front

Panel

SRQ

Hardware

Error

Syntax

Error

N/A

(always 0)

Data Ready
Status Register

SRQ Mask

La SRQ mask può solo impostare i bits che vanno da 0 a 5 dello status register. Il valore di default è 00. La maschera determina quali condizioni si desidera provochino interrupt al controller. L’istruzione per settare la SRQ mask è "Mxx", dove xx è espresso in octal code.

Esempio: si supponga di inviare l’istruzione M01 (si veda la figura seguente).  

SRQ MASK
Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
0 0 0 0 0 1
ß ß
0 (octal code) 1 (octal code)
SRQ mask

Come si può notare dalla figura, l’istruzione M01 setta il bit 0 al valore logico 1; ciò significa che dopo la lettura di una misura, il multimetro HP3478A invia al controller il segnale SRQ solo nel caso in cui sia disponibile una nuova misura.  

Nota Il multimetro digitale HP34401A è compatibile con il multimetro HP3478A, nel senso che il primo può essere impostato in modo da riconoscere tutti i comandi gestiti dal secondo.


Esercitazioni proposte.

Si illustrano ora alcuni esercizi proposti. Nel corso di tali esercizi, sarà richiesta la preparazione di alcuni VI aventi complessità crescenti con la finalità di eseguire delle misure impiegando un multimetro comandato da calcolatore attraverso interfaccia IEEE 488 e ambiente LabVIEW. Nel caso specifico degli esercizi, è stato adottato il multimetro digitale (Digital MultiMeter o DMM) HP3478A connesso a un componente sotto test di tipo resistivo.

Esercizio 1.1a: Misura di resistenza (modo semplificato)

Realizzare un VI mediante multimetro che esegua una misura di resistenza e che presenti a video il risultato della misurazione.

Suggerimenti:

  • E’ necessario inviare al DMM due comandi:
    • impostazione del bit "Data Ready" ad 1 della maschera SRQ Mask, in modo che il DMM sia in grado disegnalare all’Host l’avvenuta esecuzione della misura;
    • richiesta di esecuzione della misura del valore di una resistenza.
  • successivamente bisogna attendere che il multimetro segnali all’host l’avvenuta esecuzione della misura.
  • Infine, si può provvedere alla lettura del valore di resistenza fornito dal calcolatore.

Si vedano i VI di libreria LabVIEW: Send, Wait RSQ, Receive dalla libreria Instruments I/O – GPIB 488.2.  

Esercizio 1.1 b: Misura di resistenza (sub VI e run continuo)

Completare il VI dell’esercizio 1.1a in modo che il VI stesso possa essere impiegato come sub-VI. Realizzare, inoltre, un ulteriore VI, il quale, una volta mandato in esecuzione, continui ad eseguire misure di resistenza in successione, aggiornando ogni volta la corrispondente indicazione a video.

Suggerimenti:

  • E’ neccessario definire icona e connettori del VI realizzato in precedenza.
  • La lettura continua può essere effettuata sfruttando un ciclo while ed un button di "stop" opportunamente predisposto sul pannello frontale.
  •  

Esercizio 1.2: Misura di resistenza (10 volte)

Costruire un VI che esegua dieci misure di resistenza e restituisca i valori corrispondenti in un vettore.  

Esercizio 1.3: Misura di resistenza (N volte)

Costruire un VI che esegua per N volte una misura di resistenza, essendo N un valore fissato dall’utente (controllo "# of measures") e restituisca le misure ottenute in un vettore.

Esercizio 1.4: Misura di resistenza (N volte e grafico)

Costruire un VI che esegua un numero di misure di resistenza selezionabili da utente e mostri in un grafico i valori misurati avente in ascissa il numero di misura ottenuto ed in ordinata la corrispondente misura.  

Esercizio 1.5: Misura di resistenza (range)

Modificare il VI dell’esercizio 1.1 b in modo che sia possibile impostare il valore di fondo scala del DMM per la misura di resistenza.  

Esercizio 1.6: Misura di resistenza (range, 2/4 fili)

Modificare il VI dell’esercizio 1.5 in modo sia possibile impostare il DMM in modalità "2/4 fili" (2/4 Wire) per la misura di resistenza.  

Esercizio 1.7: Misura di resistenza (range, 2/4 fili, autozero)

Modificare il VI dell’esercizio 1.6 in modo sia possibile impostare la modalità "Autozero ON/OFF" per la misura di resistenza.  

Esercizio 1.8: Misura di resistenza(range, 2/4 fili, autozero, digit display)

Modificare il VI dell’esercizio 1.7 in modo che sia possibile impostare il numero "Digit Display" ( tra 3½, 4½, 5½).  

Esercizio 1.9: DMM stringa comando resistenza, DMM misura resistenza

Prendendo come riferimento il VI dell’esercizio 1.8 costruire un VI che sarà utilizzato come sub-VI che esegua una misura di resistenza con tutte le impostazioni precedenti (range, 2/4 fili, autozero, digit display).

Suggerimenti:

  • Costruire un VI ("DMM stringa comando resistenza.vi") che abbia "range", "2/4 fili", "autozero", "digit display" come controlli e che fornisca come uscita la stringa comando (indicatore "comand string") pronta ad essere inviata per eseguire una misura di resistenza nella modalità impostata nel panello frontale .
  • Definire icona e connettori del VI "DMM stringa comando resistenza.vi".
  • Costruire, utilizzando il come sub-VI "DMM stringa comando resistenza.vi", un VI ("DMM misura resistenza.vi") che esegua una misura di resistenza e che presenti a video il risultato della misurazione.
  • Definire icona e connettori del VI "DMM misura resistenza.vi".
  •  

Esercizio 1.10: Misura di resistenza (impostazioni DMM, N volte)

Modificare il VI dell’esercizio 1.8 in modo che sia possibile impostare il numero di misure che si desidera effettuare. Visualizzazione, inoltre, mediante due indicatori il valor medio e la deviazione standard delle misure eseguite.  

Esercizio 1.11: Misura di resistenza (impostazioni DMM, N volte, grafico)

Modificare il VI dell’esercizio 1.10 in modo tale da fornire un grafico delle misure al variare del numero d’ordine della misura eseguita.