Misure industriali con labview® - PowerPoint PPT Presentation

1 / 122
About This Presentation
Title:

Misure industriali con labview®

Description:

Labview I: Introduzione a LabView e Fondamenti del DataFlow * * Architettura software per l acquisizione dei segnali Architettura DAQmx DAQmx uno dei driver pi ... – PowerPoint PPT presentation

Number of Views:412
Avg rating:3.0/5.0
Slides: 123
Provided by: archimede
Category:

less

Transcript and Presenter's Notes

Title: Misure industriali con labview®


1
Misure industriali con labview
  • Labview I
  • Introduzione a LabView e
  • Fondamenti del DataFlow

2
Introduzione a LabView
  • LabView è una piattaforma specificatamente
    pensata per sviluppare sistemi di acquisizione,
    analisi e trattamento dati.
  • I programmi in LabView sono definitiVirtual
    Instruments o VI in quanto simulano il
    comportamento di strumenti fisici reali.

3
Introduzione a LabView
  • Ogni VI è composto da tre elementi
  • pannello frontale
  • schema a blocchi
  • icona dei connettori.
  • Ogni operazione viene svolta graficamente in modo
    da semplificare lo sviluppo e luso
    dellapplicazione.

4
Il Pannello Frontale
  • Il pannello frontale è lINTERFACCIA che il VI
    presenta allutente finale
  • Deve contenere tutti i controlli necessari per
    interagire con il VI.
  • Ogni dato da visualizzare allutente deve essere
    riportato qui.

5
Il Pannello Frontale
  • tutti gli elementi del pannello frontale sono
  • CONTROLLI, cioè oggetti a cui lutente può
    fornire dati
  • oppure
  • INDICATORI, cioè oggetti da cui lutente può
    ottenere dati

6
Lo Schema a Blocchi
  • Contiene le controparti di tutti gli elementi
    presenti nel pannello frontale.
  • Deve contenere i connettori e gli operatori
    necessari a definire come trattare il flusso di
    dati

7
Lo Schema a Blocchi
costante
operatore
  • Oltre ai CONTROLLI ed agli INDICATORI sullo
    schema a blocchi troviamo anche
  • COSTANTI, cioè fonti di dati non definibili
    dallutente
  • OPERATORI, in grado di svolgere operazioni sulle
    linee di dati

operatore
costante
8
Icona dei Connettori
  • Ogni VI può essere a sua volta incluso in un
    altro VI come un subVI.
  • Ogni operatore dello schema a blocchi è in realtà
    un subVI
  • Licona dei connettori definisce input ed output
    di ogni subVI
  • Un subVI espone la sua icona dei connettori al
    posto del pannello frontale

9
Esercizio 001
  • prova tu
  • Uso del pannello controlli e del pannello tools
  • Suddivisione in tipi di dato
  • Distinzione controlli/indicatori
  • Riprodurre il pannello frontale mostrato di
    seguito preoccupandosi per ora unicamente
    dellaspetto grafico
  • Verificare di aver creato 7 controlli e 3
    indicatori
  • NB-la barra verticale, slide è un
    controllo-tralasciare lo sfondo azzurro è solo
    indicativo

10
Esercizio 001
11
Lavorare in DataFlow
  • Il DataFlow specifica il PERCORSO che i dati
    devono compiere ma NON LORDINE con cui le
    singole operazioni vanno eseguite
  • In LabView i dati sono rappresentati da delle
    linee che connettono la loro sorgente ad
    operatori ed indicatori.
  • Ogni tipo di dato è rappresentato da un diverso
    colore, utilizzato sia per le linee che per i
    connettori dei subVI
  • Una linea di spessore marcato indica un array od
    una matrice, mentre una linea sottile indica un
    valore scalare

12
Tipi di Dati
  • LabView è basato sulla gestione del flusso di
    dati, quindi il loro tipo è fondamentale
  • LabView gestisce un gran numero di tipi di dati
    diversi, suddivisi per categorie
  • Dati di categorie diverse non possono interagire
    direttamente
  • Tipi di dati diversi ma della stessa categoria
    possono interagire direttamente

13
Tipi di Dati
  • Numerici (Interi, Decimali, Virgola Mobile, Date)
  • Booleani
  • Stringhe (Stringhe e Percorsi)
  • Aggregati (Array, Matrici e Cluster)
  • Forme dOnda
  • Dati Dinamici (Segnali ed Errori)
  • Enumeratori

14
Modalità Debug
  • È utile per visualizzare il flusso di dati nel
    diagramma a blocchi
  • Rallenta lesecuzione del VI e quindi non va
    usato se non necessario
  • Permette di inserire delle sonde (probe) per
    visualizzare il valore del dato in un determinato
    punto del flusso

15
Esercizio 002
  • prova tu
  • Simmetria tra front panel e block diagram
  • Distinzione tipi di dato e flussi
  • Convenzione di verso per il flusso
  • Help contestuale
  • Convertire in indicatore il controllo slide
  • Aggiungere dal block diagram due indicatori di
    tipo boolean
  • Sfruttando la palette NUMERIC sommare al
    controllo ampiezza un numero casuale tra 0 e 1
  • Dividere il valore della fase per 180 e
    moltiplicarlo per p
  • Collegare ad ogni INDICATORE presente un
    controllo del tipo corrispondente

16
Strutture Fondamentali
  • Le strutture principali sono le medesime dei
    linguaggi di programmazione usualiWHILE, FOR e
    CASE
  • I dati entrano ed escono dalle strutture tramite
    TUNNEL letti solo allavvio (ingresso) od alla
    fine (uscita) della struttura
  • Ogni VI che interagisca con un utente richiede un
    ciclo WHILE principale che racchiuda ogni altro
    elemento e si interrompa tramite un controllo
    STOP per consentire allutente di interagire

17
Strutture Fondamentali
  • Sia i cicli iterativi (for, while) che i blocchi
    alternativi (case, conditional) possono essere
    visti come porzioni autonome di block diagram, in
    cui i dati viaggiano grazie ad ingressi ed uscite
    chiamati TUNNEL
  • È bene mantenere la convenzione di
    flussoingressi a sinistra ed uscite a destra,
    in modo da leggere il flusso di dati da sinistra
    a destra

18
Ciclo WHILE
  • Quello che si trova allinterno del ciclo viene
    ripetuto finchè la condizione di stop (dato
    booleano) è FALSE
  • Ogni VI che interagisce con lutente deve
    prevedere un ciclo WHILE generale con una
    condizione di STOP collegata ad un pulsante e
    contenere un operatore WAIT per evitare di
    saturare il processore

19
Esercizio 003
  • prova tu
  • Ciclo WHILE generale con interruttore e WAIT
  • Uso delloperatore SELECT
  • Mechanical action
  • Riprendere lesercizio 002
  • Racchiudere lintero front panel in un blocco
    WHILE con un operatore WAIT ms multiple a 500 ms
    che si interrompa alla pressione di STOP
  • Sfruttando loperatore di confronto SELECT fare
    in modo che la fase venga visualizzata in gradi
    se linterruttore è off, in radianti se on
  • Impostare la mechanical action di START su LATCH
    e quella dellinterruttore su SWITCH, quindi
    provare ad invertirle

20
Ciclo FOR
  • Quel che si trova allinterno del ciclo viene
    ripetuto N volte lindice i va da 0 a N-1
  • Se un tunnel in ingresso trasporta un dato di
    tipo ARRAY allinterno del ciclo automaticamente
    avremo lelemento i-esimo dellarray (indexing),
    viceversa in uscita possiamo scegliere di creare
    un array partendo dalla successione di dati

21
Esercizio 004
  • prova tu
  • FOR con contatore
  • Debug e sonde
  • Creare un nuovo VI in cui riprodurre il block
    diagram riportato nella slide precedente
  • Per ora disattivare la funzione di autoindexing
    (verrà illustrata in seguito)
  • Eseguire il VI in modalità debug

22
Struttura CASE
  • Esegue solo ciò che è allinterno del riquadro
    corrispondente al dato cui è collegata la sua
    condizione.

Il menu delle opzioni disponibili si adatta
automaticamente al tipo di dato collegato alla
condizione.
23
Esercizio 005
  • prova tu
  • Differenze tra CHART e GRAPH
  • Struttura While, Case e For
  • Creare un blocco while di interazione con
    lutente (500ms)
  • Creare un interruttore (switch) GENERATE RANDOM
    NUMBERS
  • Creare sia un indicatore CHART che GRAPH
  • Creare un controllo numerico MAX con valori tra 0
    e 1000
  • Sfruttando opportunamente un blocco CASE ed un
    blocco FOR fare in modo che su entrambi gli
    indicatori (Chart e Graph) vengano visualizzati
    100 numeri casuali compresi tra 0 e MAX, a che la
    generazione dei numeri avvenga solamente in caso
    di pressione dellinterruttore GENERATE RANDOM
    NUMBERS

24
Esercizio 005
25
  • Elaborato 01
  • Prendere confidenza con i controlli del pannello
    frontale
  • Capire la distinzione tra booleani LATCH e SWITCH
  • Capire la distinzione tra Graph e Chart
  • Iniziare a tracciare i valori tramite sonde e
    ricorrendo alla modalità debug
  • Rappresentazione e formato dati
  • Tunnel incompleti e completi
  • Creazione automatica di costanti, indicatori e
    controlli

26
Misure industriali con labview
  • Labview II
  • Array e Cluster
  • Shift Register
  • Forme dOnda

27
Riepilogo delle strutture
  • Finora abbiamo visto le tre strutture di
    controllo base WHILE, CASE e FOR
  • Queste strutture possono svolgere funzioni
    complesse e molto utili, in modo da semplificare
    il lavoro quando si tratta di dati strutturati

28
Ciclo WHILE
  • Quello che si trova allinterno del ciclo viene
    ripetuto finchè la condizione di stop (dato
    booleano) è FALSE
  • Ogni VI che interagisce con lutente deve
    prevedere un ciclo WHILE generale con una
    condizione di STOP collegata ad un pulsante e
    contenere un operatore WAIT per evitare di
    saturare il processore

29
Struttura CASE
  • Esegue solo ciò che è allinterno del riquadro
    corrispondente al dato cui è collegata la sua
    condizione.

Il menu delle opzioni disponibili si adatta
automaticamente al tipo di dato collegato alla
condizione.
30
Ciclo FOR
  • Quel che si trova allinterno del ciclo viene
    ripetuto N volte lindice i va da 0 a N-1
  • Se un tunnel in ingresso trasporta un dato di
    tipo ARRAY allinterno del ciclo automaticamente
    avremo lelemento i-esimo dellarray (indexing)

31
Shift Register
  • Spesso è utile passare dei dati tra uniterazione
    e la successiva allinterno di un ciclo per
    farlo faccio ricorso ad uno SHIFT REGISTER
  • A differenza di un tunnel lo shift register viene
    scritto e letto ad ogni iterazione
  • È molto comodo per creare cumulate o sequenze di
    dati in congiunzione con loperatore BUILD ARRAY

32
Esercizio 006
  • prova tu
  • Shift register come memoria
  • Riprendere lesercizio 005
  • Sfruttando uno shift register visualizzare in un
    nuovo controllo la differenza tra il valore di
    MAX attuale e quello precedente
  • Calcolare e visualizzare min, max, media e
    deviazione standard dellultimo set di campioni
    generati alla pressione di un pulsante boolean
    CALCOLA (ma NON durante la generazione)

33
Array e Matrici
  • Gli ARRAY sono strutture ordinate in una o due
    dimensioni contenenti un unico tipo di dato se
    numerici possiamo vederli come vettori
    (monodimensionali) o come matrici
    (bidimensionali)
  • Per creare un array partendo dai valori
    elementari esiste BUILD ARRAY, per linverso si
    sfrutta INDEX ARRAY
  • In LabView gli array sono dinamici, quindi non
    hanno un numero fisso di elementi, ma possono
    essere ampliati con laggiunta di altri elementi
    tramite la funzione BUILD ARRAY
  • Gli array possono contenere qualsiasi tipo di
    dato gestito da LabView, persino altri array, ma,
    a differenza dei cluster, non possono contenere
    elementi di tipi diversi
  • Tutti gli array in LabView partono dallelemento
    di indice 0

34
Esercizio 007
  • prova tu
  • autoindexing
  • Riprendere lesercizio 006
  • Sfruttando un build array ed uno shift register
    visualizzare min, max, media e deviazione
    standard anche di TUTTI I SET di dati generati
    dallavvio del vi.

35
Cluster
  • I CLUSTER sono aggregati, non necessariamente
    omogenei, di dati diversi.
  • Per creare un cluster partendo dai dati
    elementari sfruttiamo loperatore BUNDLE, per
    ottenere i dati elementari dal cluster si ricorre
    a UNBUNDLE
  • Un cluster può anche definire delle etichette per
    i dati, ad esempio il tipo di dato ERRORE è un
    cluster contenente un booleano STATUS ed un
    intero ERROR CODE) sfruttiamo le funzioni BY
    NAME
  • Un array può essere sempre convertito in cluster,
    ma non sempre è possibile linverso

36
Esercizio 008
  • prova tu
  • Cluster ed operazioni su cluster
  • Riprendere lesercizio 007
  • Alleggerire il ricorso alla memoria memorizzando
    e visualizzando le informazioni di max,min, media
    e dev.st solo sotto forma di cluster(per
    facilitare il calcolo aggiungere al cluster anche
    linformazione del numero di campioni da cui i
    dati derivano)
  • Mantenere in memoria solo i dati dellultima
    generazione di dati
  • Visualizzare sia lultimo set di dati che lo
    storico temporale
  • eliminare il pulsante calcola e fare in modo che
    si avvii automaticamente al termine della
    generazione di numeri

37
WaveForms Signals
  • Oltre ai dati classici già presentati esistono
    alcuni tipi di dati particolari dedicati a
    generare, rappresentare ed analizzare forme
    donda
  • Un tipo di dato fondamentale è il waveform, per
    il quale esistono una serie di VI ed operatori
    già definiti
  • Molti indicatori od operatori sono POLIMORFICI e
    si adattano al tipo di dato che viene collegato,
    waveform e signals compresi
  • Questi tipi di dati sfruttano un set di VI
    autonomi per lettura e scrittura su file

38
Esercizio 009
  • prova tu
  • Riprendere lesercizio 008
  • Sfruttando gli operatori per la costruzione di
    waveform aggiungere ai dati generati casualmente
    linformazione della frequenza di campionamento
    impostabile tramite un controllore numerico letto
    in avvio.
  • Impostare come istante di inizio della waveform
    lora attuale tramite gli operatori TIME/DATE

39
Esercizio 010
  • prova tu
  • Mantenere il block diagram ordinato!
  • Riprendere lesercizio 009
  • Sostituire alloperatore di costruzione delle
    waveform un operatore specifico di generazione di
    waveform a rumore bianco
  • Sommare alla waveform a rumore bianco una
    sinusoidale generata secondo gli stessi
    parametri, di cui siano impostabili frequenza e
    ampiezza
  • Fare in modo che siano sommabili N sinusoidi

40
LabView EXPRESS
  • I componenti express consentono di sviluppare
    rapidamente applicazioni di analisi ed
    interpretazione misure
  • Sono VI polimorfici con un apposito wizard di
    configurazione
  • Spesso richiedono di riavviare il VI per poter
    funzionare correttamente (son progettati per un
    VI monouso)

41
Esercizio 011
  • prova tu
  • Componenti express
  • Riprendere lesercitazion 010
  • Sfruttando un operatore EXPRESS visualizzare su
    di un grafico a parte la componente in ampiezza
    della FFT del segnale generato
  • Fare in modo che lFFT visualizzata sia il
    risultato di una media di N generazioni
  • In caso di errore visualizzarlo allutente ed
    interrompere lesecuzione del programma

42
  • Elaborato 02
  • Prendere confidenza con i vari tipi di strutture
    di controllo
  • Capire la distinzione tra TUNNEL, SHIFT REGISTER
    ed INDEX
  • Controlli e operatori waveform
  • Controlli express per lanalisi modale

43
Misure industriali con labview
  • Labview III
  • Lettura e scrittura da file

44
Leggere Dati da File
  • Esistono vari tipi di file che LabView può
    leggere, sia nativamente che interpretando
    stringhe formattate
  • I più comuni sono i file SPREADSHEET, file ASCII
    che rappresentano numeri a virgola mobile
    separati in righe e colonne da tabulatori od
    altro, ad esempio i CSV, separati da e
    facilmente leggibili in EXCEL
  • Unalternativa sono FILE DI TESTO, file ASCII che
    riportano solo array di stringhe (una per riga),
    ma che richiedono una conversione tramite parsing
  • I FILE BINARI scritti da LabView sono di lettura
    immediata e riproducono esattamente i valori
    salvati senza bisogno di alcuna conversione.
  • I DATALOG possono essere letti direttamente senza
    conversione, prestando però attenzione alla
    sequenzialità con cui sono stati salvati in
    origine

45
Salvare Dati su File
  • Esistono vari tipi di file che LabView può
    scrivere, da utilizzare a seconda del dato che si
    vuole salvare
  • I più comuni sono i file SPREADSHEET, file ASCII
    che rappresentano numeri a virgola mobile
    separati in righe e colonne da tabulatori od
    altro
  • Unalternativa sono FILE DI TESTO, file ASCII che
    riportano solo array di stringhe (una per riga)
  • I FILE BINARI rappresentano qualsiasi tipo di
    dato, ma sono leggibili solo da LabView
  • I DATALOG sono file binari ad accesso rapido,
    utili per tracciare landamento di valori nel
    corso dellesecuzione del programma

46
Componenti EXPRESS
  • Esistono anche funzioni ExpressVI per la lettura
    e la scrittura di forme donda e di vari dati
    dinamici
  • Questi file sono chiamati MEASUREMENT FILES e
    possono essere sia binari che testuali
  • Luso di questi ExpressVI permette di configurare
    rapidamente un gran numero di opzioni di
    salvataggio

47
Esercizio 012
  • prova tu
  • OBIETTIVOPermettere di salvare dei dati
    generati in formato testuale
  • Permettere di salvare stringhe e cluster in
    formato binario
  • Sfruttando loperatore uniform white noise
    generare una forma donda di durata impostabile
    dallutente e frequenza fissa a 10kHz composta
    dalla sovrapposizione di una sinusoide (di
    ampiezza e frequenza impostabili dallutente) e
    del rumore bianco di ampiezza massima 1V
  • Salvare la forma donda così generata in un
    formato testuale (csv)
  • Salvare la forma donda in un file binario
  • Salvare in un cluster i parametri di generazione
    (frequenze, ampiezze) e salvarlo in un file
    binario

48
Esercizio 013
  • prova tu
  • OBIETTIVOPermettere di leggere dei dati
    importati in formato testuale
  • Permettere di leggere dati in formato binario
  • Riprendere i file salvati nellesercizio 012
  • Importare la forma donda da un formato testuale
    (csv) in Excel
  • Importare la forma donda da un formato binario e
    visualizzarla su di un grafico
  • Visualizzare su controlli opportuni le
    impostazioni precedentemente salvata in un
    cluster e salvate su binario

49
  • Elaborato 03
  • Prendere confidenza con i vari tipi di formato di
    salvataggio
  • Comprendere i vantaggi e gli svantaggi del
    salvataggio in file testuali
  • Valutare le dimensioni dei file binari e
    testuali
  • Salvare un file in maniera continua
  • Utilizzare i datalog

50
Misure industriali con labview
  • Labview IV
  • Gestione degli errori e subvi

51
subVI
  • La programmazione in LabView, essendo prettamente
    grafica, richiede più che in altri ambiti
    modularità e possibilità di riutilizzo
  • Lobiettivo nello sviluppare un VI è quello di
    realizzare un block diagram autoesplicativo
  • Per ottenere tutto ciò si fa ricorso ai subVI,
    ovvero alla possibilità di ogni VI di essere
    richiamato allinterno di un altro VI

52
Icona dei Connettori
  • Ogni VI può essere a sua volta incluso in un
    altro VI come un subVI.
  • Ogni operatore dello schema a blocchi è in realtà
    un subVI
  • Licona dei connettori definisce input ed output
    di ogni subVI
  • Un subVI espone la sua icona dei connettori al
    posto del pannello frontale

53
Icona dei Connettori
  • Anche per la definizione di input ed output si
    procede per via grafica
  • Licona dei connettori, in modalità show
    connectors, permette di associare ogni elemento
    del front panel ad un terminale del VI
  • Ogni terminale può essere consigliato (default),
    obbligatorio od opzionale
  • È importante mantenere la convenzione che vuole
    gli input a sinistra e gli output a destra

54
Esercizio 014
  • prova tu
  • RIPRENDERE LESERCIZIO 012
  • OBIETTIVOTrasformare il vi di generazione della
    sinusoide in un subVI
  • Separare il vi precedente in due blocchi
    distinti generazione e salvataggio
  • Rimuovere tutti gli elementi il cui UNICO scopo è
    linterazione con lutente
  • Facendo attenzione alluso delle icone e dei
    connettori creare due subvi uno per la
    generazione della forma donda, laltro per il
    salvataggio
  • ATTENZIONE ALLUSO DI INPUT E OUTPUT!!MANTENERE
    SEMPRE LA LETTURA DA SINISTRA A DESTRA!

55
Modalità di Esecuzione
  • Grazie alla finestra VI properties possiamo
    definire varie proprietà di esecuzione del subVI,
    la principale rimane però la modalità di
    esecuzione
  • Lesecuzione è detta reentrant se possono
    esistere più istanze del medesimo subVI in
    esecuzione in contemporanea
  • Lesecuzione è invece non-reentrant se esiste una
    sola istanza del subVI cui accedono
    successivamente i vari VI che lo richiamano
  • In entrambi i casi un unica istanza del subVI
    viene collegata ad ogni VI che lha richiamata,
    rendendo quindi possibili operazioni iterative in
    successione (ad esempio un inizializzazione di
    una risorsa solo alla prima chiamata od un
    contatore interno)

56
Errori RunTime
  • Gli errori si distinguono a seconda
    dellutilizzatore che li genera
  • se avvengono mentre stiamo progettando il VI sono
    errori di DESIGN TIME e impediscono lavvio del
    VI stesso
  • se avvengono quando il VI è in esecuzione sono
    errori di RUNTIME e non sono prevedibili a priori
  • Ogni subVI in grado di generare errori deve
    prevedere un errore in input ed uno in output

57
Il Flusso degli Errori
  • Ogni VI che può generare un errore RunTime
    dispone di due connettori, chiamati error in (no
    error) ed error out
  • Il tipo di dati che gestiscono questi terminali è
    un cluster particolare, composto da status,
    codice e messaggio
  • Alcuni controlli, come il blocco case, sono in
    grado di adattarsi al tipo di dato errore grazie
    al polimorfismo

58
Il Flusso degli Errori
  • un VI che trovi un error in diverso da no error
    non viene eseguito, ma passa lerrore al
    terminale error out direttamente
  • un VI che riscontri un errore RunTime scrive sul
    suo terminale error out lerrore riscontrato, se
    nulla è collegato ad error out, compare una
    finestra di errore standard allutente

59
Sequenze di esecuzione
  • Lavorando in dataflow non si possono controllare
    le sequenze di operazioni ma solo il flusso di
    dati
  • Flussi paralleli avvengono secondo le
    disponibilità del processore e dellhardware e
    non possiamo quindi definirne la sequenza
  • Nel caso delle operazioni debbano necessariamente
    essere eseguite in successione possiamo ricorrere
    al FLUSSO DEGLI ERRORI per imporre una sequenza
    specifica
  • Oltre agli errori anche altri tipi di dato
    contenenti risorse (task, handle, file) sfruttano
    una catena di connettori IN/OUT utili per creare
    sequenze

60
Esercizio 015
  • prova tu
  • RIPRENDERE LESERCIZIO 014
  • OBIETTIVOAggiungere al subVi la gestione degli
    errori
  • Aggiungere ai subvi i terminali di errore ed
    evitare che vengano eseguiti in caso di errore
    (comportamento standard)
  • Fare in modo che la forma donda generata sia la
    somma di due forme donda definite
    indipendentemente
  • Provare a ripetere la medesima operazione con
    subvi reentrant
  • ATTENZIONE ALLA CATENA DEGLI ERRORI!

61
Misure industriali con labview
  • Labview V
  • Progetti, librerie ed eseguibili

62
Progetti
  • Qualora sia necessario sviluppare unapplicazione
    od un vi complesso (formato da più subvi) è utile
    riunire tutti i vi generati in un gruppo più
    esteso il progetto
  • Un progetto è dato dallunione di vari elementi
    fondamentali
  • Uno o più TARGET (su che hardware vogliamo
    sviluppare)
  • Uno o più VI allinterno del target
    eventualmente ragruppati in cartelle virtuali per
    comodità
  • Eventualmente una o più LIBRERIE che riuniscono
    VI con funzioni coordinate tra di loro (anche non
    sviluppate da noi)
  • Una o più BUILD SPECIFICATIONS e cioè
  • Uno o più eseguibili da compilare unendo i vi
    creati
  • Uno o più installer per installare i programmi
    creati

63
Progetto
TARGET
VI
Libreria
VI da cuidipendeil progetto
Installer
Eseguibile
64
Librerie
  • Consentono di riunire VI che abbiano funzioni
    coordinate tra di loro
  • Consentono il trasferimento in maniera semplice
    di gruppi di vi molto ramificati
  • Offrono lopportunità di introdurre elementi
    aggiuntivi ai vi le variabili di rete
  • Offrono molti vantaggi se usati in combinazione
    con i file collettori LLB (gruppi di vi compressi
    in un unico file per facilitarne il
    trasferimento)
  • Possono essere compilate e trasferite in forma
    vincolata ad un terzo utilizzatore

65
  • Elaborato 04
  • Riunire tutti i vi svolti finora in un unico
    progetto
  • Comprendere le implicazioni delluso di progetti,
    librerie ed llb
  • Creare un eseguibile ed un installer
  • DEFINIRE UN PROPRIO PROGETTO ED UNA LIBRERIA DI
    VI

66
Misure industriali con labview
  • Labview VI
  • Introduzione teorica allacquisizione,LabView,
    NI MAX e DAQmx

67
LACQUISIZIONE DIGITALE DEI SEGNALI
68
I vantaggi principali dei sistemi digitali
consistono in
  • elevata insensibilità ai disturbi
  • bassa incertezza con costi relativamente
    contenuti
  • compatibilità intrinseca coi sistemi di
    calcolo
  • facilità di manipolazione, trasmissione,
    registrazione, riproduzione

69
TEORIA DELLA QUANTIZZAZIONEproblemi
relativiallasse delle ordinate
70
  • La conversione A/D consta di due fasi
  • - quantizzazione
  • - codifica

71
Quantizzazione il dato analogico viene suddiviso
in un insieme di stati discreti
72
Codifica si assegna una parola digitale (stringa
di caratteri) ad ogni stato discreto secondo un
codice opportuno
73
  • stringa di caratteri N bit
  • codifica binaria O od 1
  • insensibilità ai disturbi
  • facilità di
  • manipolazione
  • trasmissione
  • registrazione

74
  • RISOLUZIONE
  • Se ho una stringa di N bit ??2N stati diversi
  • 3 bit ??23 8 stati diversi 0 0 0 1
    stato 0 0 1 2 0 1 0 3
    . . . . . 1 1 0 7 1 1 1
    8

75
  • Con 8 bit ??28 256 stati diversi(8 bit 1
    byte)
  • Con 10 bit ??210 1024 stati diversi(1 k)
  • Con 12 bit ??212 4096 stati diversi
  • Con 16 bit ??216 65536 stati diversi

76
  • Funzione di trasferimento del quantizzatore non
    è lineare uscita 2N stati discreti ingresso
    grandezza continua

77
  • Risoluzione minima variazione della grandezza
    di ingresso apprezzabile dal quantizzatore
  • Corrisponde al valore del bit meno significativo
    e viene dettaLSBleast significant bit
  • 1 LSB FS / 2N

78
Quindi la risoluzione migliora al crescere del
numero N di bit Es se FS10 V N3 bit
LSB1.25 V se FS10 V N8 bit LSB39 mV se
FS10 V N12 bit LSB2.44mV
79
  • Esempio di segnale tra 0 e 10 V quantizzato con
    differente risoluzione

80
  • Quindi incertezza minima LSB/2
  • Se segnale G FS??incertezza relativa ??
  • Es FS 10 V e G0.9 V
  • se N8 bit incertezza 39 mV 4.3 di G
  • Soluzione amplificare G affinchè sia usata tutta
    la scala del convertitore A/D

81
  • Amplificatore di ingresso serve ad amplificare i
    segnali prima della conversione A / D affinchè il
    valore GMAX ? FS
  • Si minimizza lincertezza relativa

82
(No Transcript)
83
IL CAMPIONAMENTODEI SEGNALIproblemi relativi
allasse delle ascisse
84
  • Campionamento di un segnale analogico V(t) ?
    conversione del segnale in una sequenza di dati
    digitali (ti,Vi)

V
t
V
(ti , Vi) i1,...... N
t
85
  • Pertanto in un segnale campionato sia la
    grandezza V che il tempo t sono espressiin forma
    discreta
  • Tra due campioni cè ?tC ti - ti-1
  • Frequenza di campionamento fC 1 / ?tC

V
ti-1 ti ti1
t
86
  • A che frequenza occorre campionare un segnale per
    rappresentarlo correttamente?

V
t
V
t
Entrambe OK, ma diverso dettaglio
87
  • Ma se la frequenza di campionamento diminuisce si
    va incontro al problema dell aliasing

V
t
Il segnale campionato non è più riconoscibile e
sembra avere una frequenza più bassa del segnale
analogico originario
88
  • Il problema è legato alla relazione tra frequenza
    del segnale fS e frequenza di campionamento
    fCse fC lt 2 fS ??? l aliasing si manifesta

fC gt 2 fS
fC 2 fS
fC lt 2 fS
89
CASO MOLTO PARTICOLARE
fC fS
LO STESSO FATTO PUO ESSERE VISTO NEL DOMINIO
DELLE FREQUENZE
90
  • Teorema del campionamento se un segnale continuo
    a banda limitata contiene solo frequenze
    inferiori ad fSmax ??il segnale sarà campionato
    correttamente se fC ? 2 fSmax

91
  • Poichè f C 1 / ?tC ed fS 1 / TS
  • essendo fC ? 2fS???tC ? TS / 2
  • quindi occorrono almeno due campioni sul
    semiperiodo

92
  • Laliasing può essere interpretato nel dominio
    della frequenza come lo spostamento di armoniche
    dalle alte frequenze verso le basse frequenze

93
Dispositivi elettronici per lacquisizione dei
segnali
94
Acquisizione e ADC
  • Informazione
  • Dato Numerico

MISURANDO
CATENADI MISURA
SCHEDA DIACQUISIZIONE
STRUMENTO
ADC
PC
  • Segnale elettrico

95
Campionamento
96
Scheda dAcquisizione
  • Frequenza di Campionamento (massima)
  • Numero Canali Input
  • Risoluzione Convertitore ADC
  • Range di Input (minimo e massimo)
  • Es NI USB-6009
  • 48 kS/s
  • 8 Differential / 4 Single-Ended
  • 14 bit differential / 13 single-ended
  • 20V, 10V, 5V, 4V, 2.5V, 1.25V, 1V

97
Acquisizione
  • Frequenza di Campionamento
  • Durata Acquisizione
  • Range di Input
  • Es
  • 150 Hz
  • 5 s
  • 4V

98
Architettura software per lacquisizione dei
segnali
99
Architettura DAQmx
100
DAQmx
CHANNELS
  • DEVICE es dev1hardware di acquisizione o
    generazione segnale.Il nome viene generato in
    automatico allinstallazione.
  • CHANNEL es dev1\ai0canale di lettura o
    scrittura dei segnali, appartiene ad un device
    fisico ed è numerato partendo da 0.
  • TASK es MyTasksessione di acquisizione o
    generazione di uno o più segnalisu uno o più
    canali di uno stesso device.

101
Definire un Task
  • Un TASK non è altro che un processo di
    acquisizione od output su uno o più canali
  • Elenca i canali su cui scrivere o da cui leggere,
    la loro configurazione, leventuale scala di
    conversione ed il range da usare
  • Definisce modalità e frequenza di campionamento,
    numero di campioni, eventuali trigger e clock
  • Sia nel MAX che in LabView è possibile definire
    un task tramite il DAQ ASSISTANT

102
Definire un Canale
  • Definisce un canale fisico corrispondente
  • Permette di impostare nomi intuitivi, sensibilità
    e offset
  • Può avere ulteriori parametri di configurazione
  • Può essere connesso in tre modi-Differenziale (
    misuro la tensione tra due poli ignorando
    eventuali ground comuni)-Referenced Single
    Ended (misuro la tensione tra un polo ed il
    ground comune tra scheda e trasduttore)-Non
    Referenced Single Ended (misuro la tensione tra
    un polo ed un ground diverso tra scheda e
    trasduttore)
  • Tutti i canali di un task devono essere dello
    stesso tipo(analog output, analog input, digital
    output, digital input)

103
Scale di Conversione
  • Permettono di convertire già in fase di
    acquisizione il valore di tensione o corrente
    uscito dal trasduttore nel valore del misurando
  • Ogni scala è fissa e globale è quindi utile
    ricorrervi quando si usi spesso un trasduttore o
    si usino trasduttori con la stessa sensibilità
  • Quello che ci permette di definire la scala è il
    diagramma di taratura della catena di misura a
    monte della scheda di acquisizione
  • In assenza di una scala di conversione dobbiamo
    ricordarci che leggiamo solamente il segnale
    elettrico, ed è quindi necessario convertire il
    segnale a posteriori

104
Measurement Automation eXplorer
  • Configurare hardware and software NI
  • Creare canali, task ed interfacce virtuali
  • Eseguire la diagnostica dellhardware NI
  • Visualizzare sistemi remoti
  • Definire scale e conversioni personalizzate
  • Tutto ciò che è definito in MAX è visibile e
    considerato GLOBALE nei VI di LabView

105
MAX Elementi Accessibili
106
Esercizio 016
  • prova tu
  • Utilizzare il Measurement and Automation eXplorer
  • Connessione e test delle schede
  • Collegare una scheda di acquisizione al pc,
    individuarne il tipo e le caratteristiche
    fondamentali.
  • Verificarne la corretta connessione sfruttando il
    test panel del MAX, quindi creare un task di
    acquisizione di test che acquisisca tutti i
    canali alla massima frequenza possibile.

107
Esercizio 017
  • prova tu
  • Utilizzare il Measurement and Automation eXplorer
  • Scale e sensibilità
  • Su un nuovo VI creare un task di acquisizione
    semplice che visualizzi su un grafico il
    risultato dellacquisizione
  • Creare un task di acquisizione che legga m/s² e N
    rispettivamente supponendo di avere un
    accelerometro sul canale ai0 con sensibilità
    8.175V/g e che indichi 0V con unaccelerazione di
    9.81m/s² ed una cella di carico con sensibilità
    200mV/N e tensione nulla a cella scarica sul
    canale ai1

108
Esercizio 018
  • prova tu
  • Riprendere lesercizio 011
  • Sostituire alla forma donda generata quella
    acquisita tramite il canale AI0 della scheda di
    acquisizione
  • Visualizzare la FFT del segnale acquisito
    aggiungendo un puntatore

109
Esercizio 019
  • prova tu
  • Riprendere lesercizio 018
  • Identificare le capacità e caratteristiche del
    modulo di acquisizione a disposizione
  • Sostituire i canali in ingresso con un canale
    adatto al tipo di modulo di a disposizione
  • Effettuare e visualizzare unacquisizione di
    10secondi in modalità discontinua

110
Esercizio 020
  • prova tu
  • Riprendere lesercizio 019
  • Modificare il vi ed il DAQ assistant in modo da
    poter operare unacquisizione in modalità
    continua.
  • Effettuare unacquisizione di 30s in modalità
    continua e visualizzarla a schermo.

111
Esercizio 021
  • prova tu
  • RIPRENDERE LESERCIZIO 020
  • Aggiungere un pulsante SALVA TIME HISTORYed un
    pulsante SALVA FFT
  • OBIETTIVOPermettere di salvare sia i dati
    acquisiti che lo spettro calcolato tramite la
    FFT
  • Sfruttare il componente express WRITE MEAS. FILE
  • Alla pressione di SALVA TIME HISTORY il VI deve
    chiedere allutente il nome del file da scrivere
    e salvare i segnali già acquisiti in formato
    TESTO-è preferibile salvare aggiungendo
    (manualmente) lestensione CSV-per comodità
    mantenere uno shift register con i segnali
    acquisiti-aggiungere una sola colonna di tempo
    per tutti i segnali-se il file già esiste salva
    con un nuovo nome
  • Alla pressione di SALVA FFT deve fare lo stesso
    ma salvare lo spettroSALVARE UN PAIO DI
    ACQUISIZIONI ED UN PAIO DI SPETTRI

112
Esercizio 022
  • prova tu
  • CREARE UN NUOVO VISENZA INTERAZIONE CON LUTENTE
  • RIPRENDERE LESERCIZIO 020
  • OBIETTIVOCreare un nuovo operatore subVI in
    grado di calcolare la media, la varianza, il
    massimo ed il minimo di un segnale dato un
    segnale ed i valori storici di acquisizioni
    precedenti (vedi esercizio 008
  • Collegare allicona dei connettori i controlli
    double ed il grafico-rispettare le convenzioni
    inputsinistra outputdestra!!-cambiare licona
    in modo che sia significativa
  • Alterare le proprietà del vi in modo che non si
    apra quando viene chiamato(vi properties-gtexecuti
    on-gtopen when called)
  • Impostare i valori di default dei vari controlli
    non obbligatori(data operation-gtmake current
    value default)
  • NEL VI DELLESERCIZIO 018 aggiungere (sfruttando
    il nuovo operatore) anche un canale che mostri il
    valore del modulo del vettore accelerazione sullo
    stesso grafico, nonché il valore RMS su un
    indicatore di tipo GAUGE

113
Esercizio 023
  • prova tu
  • RIPRENDE GLI ESERCIZI 019 E 020
  • OBIETTIVOPoter visualizzare sulla finestra
    principale del sistema di acquisizione
    composizioni di file letti sfruttando il vi già
    creato
  • Creare un flusso degli errori corretto per
    lesercizio 017 e 018(inserire in fondo al vi
    017 un visualizzatore di un eventuale errore con
    general error handler, e terminare il vi se
    lerrore è stato generato)
  • Inserire nellicona dei connettori dellesercizio
    018 i terminali per ERROR IN, ERROR OUT e SEGNALI
    LETTI
  • Inserire nel vi delles. 017 un pulsante LEGGI
    alla cui pressione la catena degli errori venga
    passata al vi 018 (usare SELECT A VI)
  • Sfruttando il terminale SEGNALI LETTI del vi 018
    passare i segnali letti al grafico principale ed
    allFFTLEGGERE 3 FILE TRA GLI ESEMPI
    PRECEDENTEMENTE SALVATI

114
Esercizio 024
  • prova tu
  • ESERCIZIO COMPLESSO!
  • OBIETTIVOCreare un sistema di acquisizione
    completo in grado di
  • Acquisire segnali da più canali sia in modalità
    continua che discontinua
  • Salvare i dati delle time histories su file
  • Leggere i dati da file
  • Calcolare FFT da dati salvati o acquisiti
  • Salvare le FFT calcolate su file di testo
  • Prendere spunto dalle esercitazioni precedenti
  • Ricorrere il meno possibile agli operatori
    express
  • Sfruttare in maniera intensiva subVI e cluster

115
Misure industriali con labview
  • Labview VII
  • Property nodes, variabili e buone norme di
    programmazione

116
Property Nodes
  • Consentono di manipolare gli elementi grafici del
    front panel oltre che modificandone il valore
    anche alterandone le caratteristiche (dimensione,
    colore, assi, etichette)
  • Possono interrogare le proprietà grafiche degli
    elementi del front panel (livello di zoom,
    frazione selezionata)
  • Utili per inizializzare il front panel od
    interagire con lutente, ma devono essere usati
    con cautela

117
Invoke Nodes
  • Consentono di manipolare gli elementi grafici del
    front panel con azioni che tipicamente invoca
    lutente
  • Possono effettuare operazioni anche complesse in
    automatico evitando passaggi tramite utente
  • E necessario usarli solo quando indispensabili e
    comunque con molta cautela per evitare ERRORI
    runtime

118
Esercizio 025
  • prova tu
  • Property nodes e invoke nodes
  • OBIETTIVOFare in modo che uno zooming in un
    grafico venga automaticamente seguito dagli altri
    grafici
  • Prendere spunto dalle esercitazioni precedenti
  • Creare un nuovo vi che mostri su tre grafici
    diversi tre forme donda (usare i subvi di
    generazione salvati in precedenza alla pressione
    di un tasto)
  • Fare in modo che ad ogni zoom nel primo grafico
    da parte dellutente gli altri due grafici si
    adattino mostrando la stessa frazione temporale
  • Alla pressione di un tasto salvare su file
    limmagine del grafico usando linvoke node
    EXPORT IMAGE

119
Variabili condivise
  • Consentono di memorizzare e trasmettere dati in
    maniera indipendente dai flussi dati
  • Costituiscono uneccezione alla programmazione a
    flussi e quindi vanno usate solo con SOMMA
    CAUTELA per evitare problemi di aggiornamento
    falsato
  • Devono necessariamente appartenere ad una
    libreria
  • Possono essere
  • SHARED condivise da tutti i vi della medesima
    libreria
  • NETWORK PUBLISHED pubblicate via rete su un
    server SVE (ogni computer con labview ne ha uno a
    bordo, ma anche alcune schede di acquisizione
    avanzate ne son dotate) che può consentire ad
    altri computer di scriverle e leggerle in remoto

120
Buone pratiche di programmazione
  • Mantenere il block diagram pulito ed intuitivo
  • Scrivere sempre da sinistra a destra
  • Non andare oltre le dimensioni dello schermo
  • Disegnare icone intuitive ed usare nomi estesi
  • Rendere il programma il più modulare possibile
  • Se qualcosa può essere delegato ad un subvi,
    farlo
  • Testare individualmente ogni subvi sviluppato
  • Sfruttare al massimo librerie e progetti
  • Se si pensa che una serie i funzioni sia
    correlata,usare una libreria
  • Se si pensa che qualcosa potrebbe essere riusato,
    metterlo in una libreria
  • Mantenere il progetto ordinato con cartelle
    virtuali e librerie

121
Buone pratiche di programmazione
  • Scegliere uno dei due approcci e trarne
    vantaggio
  • BOTTOM-UP
  • identificare i compiti più difficoltosi del
    progetto, sviluppare un vi che lo assolve, quindi
    integrarlo in vi successivi come subvi
  • utile solo se il progetto è semplice, ma il
    risultato dubbio e si vuole valutarne la
    fattibilità
  • TOP-DOWN
  • definire in linea di massima il funzionamento del
    progetto, partendo da uno schema logico di
    funzionamento, e delegare i vari compiti a subvi
    template (solo input-output) che verranno
    realizzati poi
  • Utile quando il progetto non preveda vincoli di
    fattibilità tecnica, anche in casi non complessi!

122
  • Elaborato 05
  • Familiarizzare con le variabili di rete ed i
    property node
  • Capire quali siano i problemi di trasmissione e
    temporizzazione delle variabili di rete
  • Capire quali siano i possibili errori in cui si
    può incappare con luso estensivo di variabili e
    nodi
  • Provare a interagire con il server SVE
    allindirizzo 192.167.21.156
Write a Comment
User Comments (0)
About PowerShow.com