Sei sulla pagina 1di 4

SCUOLA DI LABVIEW

03

Training per principianti

IL DEBUG DI VI
a cura di Matteo Foini

Per avviare un VI, dovete collegare tutti i subVI, le funzioni e le strutture con i tipi di dato corretti per i terminali

alvolta un VI produce dati o si avvia in un modo che non vi aspettavate. Potete utilizzare LabVIEW per configurare come avviare un VI e per individuare i problemi con lorganizzazione dello schema a blocchi o con il flusso dei dati nello schema a blocchi.

A. CORREZIONE DI VI NON FUNZIONANTI


Se un VI non si avvia, guasto o non eseguibile. Il pulsante Run appare rotto, come mostrato in fig. 1, quando il VI che state creando o modificando contiene errori.
Fig 1 La freccia rotta indica la presenza di errori nel VI

Se il pulsante risulta ancora rotto quando avete finito di collegare lo schema a blocchi, il VI guasto e non pu essere avviato.

COME TROVARE LE CAUSE DEI VI GUASTI


Gli avvisi non vi impediscono di avviare un VI. Essi sono progettati per aiutarvi ad evitare potenziali problemi nei VI.

Gli errori, invece, possono guastare un VI. Dovete quindi risolvere ogni errore prima di avviare il VI. Cliccate sul pulsante Run o selezionate ViewError List per capire perch il VI guasto. La finestra Error list elenca tutti gli errori. La sezione Items with errors elenca i nomi di tutte le voci in memoria, come i VI e le librerie del progetto che possiedono errori. Se due o pi voci hanno lo stesso nome, questa sezione mostra listanza dellapplicazione specifica per ogni voce. La sezione errors and warnings elenca gli errori e gli avvertimenti per il VI selezionato nella sezione Items with errors. La sezione Details descrive gli errori ed in alcuni casi raccomanda come correggere gli errori. Cliccate sul pulsante Help per visualizzare un argomento del LabVIEW Help che descrive lerrore in dettaglio ed include istruzioni passo-passo per la correzione degli errori. Cliccate sul pulsante Show Error o cliccate due volte sulla descrizione dellerrore per evidenziare larea nello schema a blocchi o nel pannello frontale che contiene lerrore.

CAUSE COMUNI DI ERRORE NEI VI


Lelenco seguente contiene i motivi comuni per cui un VI risulta guasto mentre lo modificate: Lo schema a blocchi contiene un collegamento interrotto a causa di incompatibilit di tipi di dato o di unestremit non collegata. Fate riferimento allargomento Correcting Broken Wires del LabVIEW Help per informazioni sulla correzioni di collegamenti interrotti. Nello schema a blocchi un terminale essenziale non collegato. Fate riferimento allargomento Using Wires to Link Block Diagram Objects del LabVIEW Help per ulteriori informazioni sulla impostazione degli ingressi e delle uscite necessarie. Un subVI guasto o avete modificato il suo pannello connettori dopo aver inserito la sua icona nello schema a blocchi del VI. Fate riferimento allargomento Creating subVI del LabVIEW Help per informazioni sui subVI.

Fig 2 Esempio di finestra di dialogo Error List

28

SCUOLA DI LABVIEW

B. TECNICHE DI DEBUG
Se un VI non guasto, ma ottenete dei dati inattesi, potete utilizzare le tecniche seguenti per individuare e correggere i problemi con il VI o il flusso dei dati nello schema a blocchi: Collegate i parametri di error in ed error out presenti nella parte inferiore della maggior parte dei VI e delle funzioni. Questi parametri rilevano gli errori incontrati in ogni nodo dello schema a blocchi ed indicano se e dove c stato un errore. Potete utilizzare questi parametri anche nei VI che realizzate. Per eliminare tutti gli avvertimenti dei VI, selezionate ViewError List e contrassegnate il riquadro Show Warnings per vedere tutti gli avvertimenti del VI. Determinate le cause e correggetele nel VI. Cliccate tre volte sul collegamento con lo strumento Operativo attivo per evidenziare il suo percorso completo ed assicurarvi che i collegamenti siano eseguiti sui terminali corretti. Utilizzate la finestra Context Help per verificare i valori di default per ogni funzione e subVI dello schema a blocchi. I VI e le funzioni passano i valori di default se gli ingressi consigliati o opzionali sono scollegati. Per esempio, un ingresso booleano potrebbe essere impostato su TRUE se scollegato. Usate la finestra di dialogo Find per ricercare subVI, testo e altri oggetti da correggere nel VI. Selezionate ViewBrowse RelationshipsThis VIs Hierarchy per trovare subVI scollegati. A parte funzioni scollegate, i VI non sempre generano errori a meno che non configuriate un ingresso come necessario. Se inserite per errore un subVI scollegato nello schema a blocchi, esso viene eseguito quando viene eseguito lo schema a blocchi. Quindi, il VI svolge azioni extra. Utilizzate lesecuzione evidenziata per osservare il flusso dei dati nello schema a blocchi. Scorrete passo passo il VI per visualizzare ogni azione del VI nello schema a blocchi. Utilizzate lo strumento Probe per osservare i valori intermedi dei dati e per verificare gli errori in uscita di VI e funzioni, specialmente di quelli che effettuano I/O. Utilizzate dei punti dinterruzione per mettere in pausa lesecuzione, cos potete andare passo passo o inserire dei probe. Sospendete lesecuzione di un subVI per modificare i valori dei controlli e degli indicatori, per controllare il numero di volte che viene eseguito o per andare indietro allinizio dellesecuzione del subVI. Verificate se i dati passati da una funzione o da un subVI sono indefiniti. Ci avviene spesso con i numeri. Per esempio, in un punto del VI unoperazione potrebbe aver diviso un numero per zero, restituendo Inf (infinito), mentre le funzioni o i subVI successivi erano in attesa di numeri.

Se il VI viene eseguito pi lentamente del previsto, verificate di aver disattivato lesecuzione evidenziata nei subVI. Inoltre, chiudete i pannelli frontali e gli schemi a blocchi dei subVI quando non li usate perch le finestre aperte possono compromettere la velocit di esecuzione. Verificate la rappresentazione dei controlli e degli indicatori per vedere se state ottenendo un overflow perch avete convertito un numero in virgola mobile in un intero o un intero in un intero pi piccolo. Per esempio, potreste aver collegato un intero a 16 bit ad una funzione che accetta solo interi a 8 bit. Questo fa s che la funzione converta lintero a 16 bit in uno a 8 bit, provocando una potenziale perdita di dati. Verificate se qualche For Loop esegue inavvertitamente zero iterazioni e produce array vuoti. Verificate di aver inizializzato correttamente i registri a scorrimento, a meno che non intendiate salvarne i dati da unesecuzione del ciclo ad unaltra. Verificate lordine degli elementi del cluster nei punti sorgente e di destinazione. LabVIEW rileva i tipi di dato e le discrepanze durante la creazione, ma non rileva discrepanze di elementi dello stesso tipo. Verificate lordine di esecuzione dei nodi. Verificate che il VI non contenga subVI nascosti. Potreste aver nascosto un subVI inavvertitamente disponendone uno direttamente sopra un altro nodo o durante la diminuzione delle dimensioni di una struttura senza mantenere in vista il subVI. Verificate il numero di subVI utilizzati dal VI con i risultati di ViewBrowse RelationshipsThis VIs SubVIs e ViewBrowse RelationshipsUnopened SubVIs per stabilire se esistono ulteriori subVI. Aprite anche la finestra VI Hierarchy per vedere i subVI di un VI. Per evitare risultati sbagliati causati da subVI nascosti, specificate quali ingressi sono necessari ai VI.

ESECUZIONE EVIDENZIATA
Visualizzate unanimazione dellesecuzione dello schema a blocchi cliccando sul pulsante Highlight Execution (fig. 3).
Fig 3 Pulsante Highlight Execution

Lesecuzione evidenziata mostra lo spostamento dei dati nello schema a blocchi da un nodo allaltro utilizzando delle bolle che si muovono sui collegamenti. Utilizzate lesecuzione evidenziata unitamente a quella passo passo per vedere come i valori dei dati si spostano da nodo a nodo in un VI. Nota Lesecuzione evidenziata riduce enormemente la velocit di esecuzione dei VI.

29

SCUOLA DI LABVIEW

03

Fig 4 Esempio di esecuzione evidenziata

ESECUZIONE SINGLE-STEP
Eseguite passo passo un VI per visualizzare ogni azione del VI sullo schema a blocchi mentre il VI in esecuzione. I pulsanti per lesecuzione passo passo, mostrati nella fig. 5, influenzano lesecuzione solo in modalit single-step del VI o subVI.

Fig 5 I pulsanti per lesecuzione passo passo_stepinto (a sinistra), passo_stepout (al centro) e passo_stepover (a destra)

Entrate nella modalit single-step cliccando sul pulsante Step Over o Step Into della barra degli strumenti dello schema a blocchi. Spostate il cursore sul pulsante Step Over, Step Into o Step Out per visualizzare delle note che descrivono il passo successivo se cliccate su quel pulsante. Potete andare passo passo nei subVI o eseguirli normalmente. Se andate passo passo in un VI con lesecuzione evidenziata attiva, appare un simbolo di esecuzione sulle icone dei subVI che sono attualmente in esecuzione (fig. 6).

Utilizzate lo strumento Probe se avete uno schema a blocchi complicato da una serie di operazioni, ognuna delle quali potrebbe restituire dati sbagliati. Utilizzate lo strumento Probe con lesecuzione evidenziata, passo passo e con punti dinterruzione per stabilire se e dove i dati sono sbagliati. Se il dato disponibile, il probe si aggiorna immediatamente durante lesecuzione passo passo o quando ponete in pausa nel punto dinterruzione. Quando lesecuzione in pausa in un nodo a causa dellesecuzione passo passo o di un punto dinterruzione, potete anche sondare il collegamento appena eseguito per vedere il valore fluito attraverso quel collegamento.

TIPI DI PROBE
Potete verificare i valori intermedi su un collegamento quando un VI in esecuzione utilizzando un probe generico, utilizzando un indicatore sulla palette Controls per visualizzare i dati, utilizzando un probe in dotazione, utilizzando un probe personalizzato o creando un nuovo probe Generico. Utilizzate il probe generico per visualizzare i dati che passano attraverso un collegamento. Cliccate con il tasto destro su un collegamento e selezionate Custom Probe Generic Probe dal menu rapido per utilizzare il probe generico. Il probe generico visualizza i dati. Non potete configurare il probe generico per rispondere ai dati. LabVIEW visualizza il probe generico quando cliccate con il tasto destro su un collegamento e selezionate Probe, a meno che non abbiate gi specificato un probe personalizzato o in dotazione per il tipo di dato. Potete verificare un probe personalizzato analogamente ad un VI. Tuttavia un probe non pu sondare il proprio schema a blocchi, n lo schema a blocchi di uno dei suoi subVI. Quando si verificano i probe, utilizzate probe generici.

Fig 6 Analisi passo passo evidenziata

STRUMENTI PROBE
Utilizzate lo strumento Probe, mostrato nella fig. 7, per verificare i valori intermedi su un collegamento mentre un VI in esecuzione.

Fig 7 Strumento Probe per la verifica di valori in fase di esecuzione

30

SCUOLA DI LABVIEW

UTILIZZO DI INDICATORI PER VISUALIZZARE I DATI


Potete anche utilizzare un indicatore per visualizzare i dati che passano attraverso un collegamento. Per esempio, se visualizzate dati numerici, potete utilizzare un chart nel probe per visualizzare i dati. Cliccate con il tasto destro del mouse su un collegamento, selezionate Custom ProbeControls dal menu rapido e selezionate lindicatore che volete usare. Potete anche cliccare sullicona Select a Control sulla palette Controls e selezionare uno dei controlli personalizzati o definizioni di tipo salvate sul computer o in una directory condivisa su un server. LabVIEW tratta le definizioni di tipo come controlli personalizzati quando li utilizzate per visualizzare dati sotto probe. Se il tipo di dato che avete selezionato per lindicatore non adatto al tipo di dato del collegamento su cui avete cliccato con il tasto destro del mouse, LabVIEW non inserisce lindicatore sul collegamento.

Dopo avere selezionato un probe dal menu rapido Custom Probe, ed essere andati su di esso utilizzando lopzione della palette Select a Control o avere creato un nuovo probe utilizzando il Custom Probe Wizard, quel probe diventa il probe di default per quel tipo di dato e LabVIEW carica quel probe quando cliccate con il tasto destro del mouse su un collegamento e selezionate Probe dal menu rapido. LabVIEW carica solo i probe che coincidono esattamente con il tipo di dato del collegamento su cui avete cliccato. Quindi, un probe numerico a virgola mobile in doppia precisione non pu lavorare su un collegamento con un intero a 32 bit senza segno, anche se LabVIEW pu convertire i dati. Nota Se volete che un probe personalizzato diventi il probe di default per un particolare tipo di dato, salvate il probe nella directory user.lib\_probes\default. Non salvate i probe nella directory vi.lib\_probes perch LabVIEW sovrascrive quei file quando eseguite gli aggiornamenti o reinstallate il programma.

PROBE IN DOTAZIONE
I probe in dotazione sono VI che visualizzano informazioni complete sui dati che passano attraverso un collegamento. Per esempio, il VI Refnum Probe restituisce informazioni sul nome del VI, il percorso del VI e il valore esadecimale del riferimento. Potete anche utilizzare un probe in dotazione per rispondere conseguentemente sulla base dei dati che fluiscono attraverso il collegamento. Per esempio, utilizzate un probe Error su un cluster di errori per ricevere lo stato, il codice, la sorgente e la descrizione dellerrore e specificare se volete impostare un punto dinterruzione condizionale in caso di errore o di avvertimento. I probe in dotazione appaiono nella parte superiore del menu rapido Custom Probe. Cliccate con il tasto destro del mouse su un collegamento e selezionate Custom Probe dal menu rapido per selezionare un probe in dotazione. Solo i probe che si adattano al tipo di dato del collegamento su cui avete cliccato con il tasto destro del mouse appaiono nel menu rapido. Fate riferimento al VI Using Supplied Probes nella directory labview\examples\general\probes.llb per un esempio di utilizzo dei probe in dotazione.

PROBE PERSONALIZZATI
Utilizzate il Custom Probe Wizard per creare un probe sulla base di un probe esistente o per creare un nuovo probe. Cliccate con il tasto destro del mouse su un collegamento e selezionate Custom ProbeNew dal menu rapido per visualizzare il Custom Probe Wizard. Create un probe quando volete avere pi controllo su come LabVIEW analizza i dati che fluiscono su un collegamento. Quando create un nuovo probe, il tipo di dato del probe si adatta al tipo di dato del collegamento su cui avete cliccato con il tasto destro del mouse. Se volete modificare il probe che avete creato, dovete aprirlo dalla directory in cui lo avete salvato.

Note sullautore
Laureato in ingegneria nucleare al Politecnico di Milano, Matteo Foini lavora in qualit di Technical Marketing Engineer presso National Instruments Italy.

readerser vice.it n.325

31