La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Opzioni Block diagram. Lezione 5 Array, Grafici e Cluster A.Uso degli arrays B.Creazione di arrays tramite i cicli C.Alcune funzioni base per la manipolazione.

Presentazioni simili


Presentazione sul tema: "Opzioni Block diagram. Lezione 5 Array, Grafici e Cluster A.Uso degli arrays B.Creazione di arrays tramite i cicli C.Alcune funzioni base per la manipolazione."— Transcript della presentazione:

1 Opzioni Block diagram

2 Lezione 5 Array, Grafici e Cluster A.Uso degli arrays B.Creazione di arrays tramite i cicli C.Alcune funzioni base per la manipolazione degli arrays D.Il concetto di polimorfismo E.Utilizzo dei grafici per la visualizzazione dei dati F. Uso dei clusters G. Alcune funzioni base per la manipolazione dei clusters Obiettivi di apprendimento:

3 Arrays Raggruppamento di dati dello stesso tipo 1D o 2D, fino a 2 elementi per dimensione Si accede agli elementi tramite il loro indice posizionale Il primo elemento ha indice 0 31 index Array di 10 elementi 1.23.28.28.04.85.16.01.02.51.7 0 1 2 3 4 5 6 7 8 9 2D array Array di 35 elementi: 5-righe per 7-colonne 0 1 2 3 4 5 6 0 1 2 3 4 Nota: non si possono avere array di array, charts o graphs

4 Array Controls e Indicators Aggiungere una dimensione per array 2D 1. Selezionare l’Array Shell dalla Controls palette 2. Posizionare il dato nella shell Indice di riga Indice di colonna

5 Creare Array di costanti 1. Selezionare l’ “Array Constant” shell dall’Array subpalette 2. Posizionare all’interno della shell le costanti di interesse

6 Creare Arrays tramite i cicli Auto-Indexing – “Accumulo dei dati ai bordi di un ciclo” Auto indexing di default per i cicli For; Disabilitato per i While Auto-indexing può essere usato per accedere ad un singolo elemento di un input array

7 Creare array 2D Il ciclo più interno crea gli elementi della colonna Il ciclo esterno riempe le righe Esempio: 2DArray.vi

8 Impostare il numero di cicli Un array in ingresso ad un ciclo For ne determina il numero di iterazioni Nel caso di impostazioni discordanti, viene selezionato il numero di iterazioni minore

9 Funzioni che operano sugli Arrays Array Size Initialize Array Array Subset

10 La funzione Build Array Realizzare array multi-dimensionali Concatenazione degli ingressi (default) Append di un elemento

11 La funzione Index Array Estrazione di un elemento Estrazione di una riga

12 Polimorfismo Gli ingressi di una funzione possono essere diversi Tutte le funzioni aritmetiche sono polimorfiche Realizzare Polymorphism Example.vi Scalar + Scalar Array + Scalar CombinationResult Scalar Array 142 2 467 5 2 7 Array + Array 325 142 142 3257 Array 364 467

13 Esercizio 5-1 Array Exercise.vi Tempo a disposizione: 20 min.

14 Esercizio 5-1 Array Exercise.vi Tempo a disposizione: 20 min.

15 Grafici (Visualizzatore 2D) Selezionabili dalla Graph subpalette Waveform Graph – traccia un array numerico vs l’indice XY Graph – riceve due array e traccia uno rispetto all’altro Plot Legend (stile punti e linea) Graph Palette Scale Legend

16 Waveform Graphs – grafico singolo Asse X uniformemente spaziato – X(0) = 0.0, delta X = 1.0 Asse X uniformemente spaziato X(0) e delta X impostato dall’utente

17 Waveform Graphs – grafici multipli Ogni riga dell’array è un grafico (X(0) = 0, delta X = 1) Ogni riga dell’array è un grafico (X(0) e delta X specificati dall’utente: possono essere differenti per i due grafici!)

18 XY Graphs Asse X non unifome Un array per l’asse X e uno per l’asse Y

19 Esercizio 5-2 Graph Circle.vi Tempo a disposizione: 20 min.

20 Esercizio 5-2 Graph Circle.vi Tempo a disposizione: 20 min.

21 Chart e Graph: riepilogo Finestra del Context Help:

22 Clusters Strutture che inglobano più dati I dati possono essere di tipi differenti Simiili ai record in Pascal o alle struct in C Gli elementi devono essere o tutti dei controlli o tutti degli indicatori Similitudine: fili all’interno di un cavo!

23 1. Selezionare la Cluster shell dall’Array & Cluster subpalette Cluster Controls e Indicators 2.Posizionare gli oggetti nella shell (devono essere tutti Controls o Indicators) Nota: si possono avere cluster nidificati in cluster? No.

24 Cluster di Costanti Selezionare la Cluster Constant shell dalla Cluster subpalette Right-click su un cluster esistente e menù contestuale Create>>Constant

25 Ordine degli oggetti Gli elementi hanno un ordine logico (si inizia da 0) Per cambiare ordine, right-click sul bordo e selezionare Reorder Controls nella voce Cluster...

26 Ordine degli oggetti L’ordine è molto importante: CORRETTO! ERRATO!

27 Usare i Clusters per passare dati a un SubVIs Un solo cluster passa più valori diversi ad un SubVI Supera la limitazione di 28 terminali d’ingresso Semplifica le interconnessione

28 Funzioni per i Cluster Nella Cluster subpalette della Functions palette Oppure tramite right-clicking su i terminali del cluster terminal Bundle (Le etichette dei Terminal indicano il tipo di dato) Bundle By Name Nota: un cluster esistente deve essere collegato al terminale della funzione

29 Funzioni per i Cluster Unbundle Unbundle By Name Blocco Unbundled nel diagram

30 Esercizio 5-3 Realizzare il Cluster.VI Tempo a disposizione: 10 min

31 Esercizio 5-3 Realizzare il Cluster.VI

32 Riepilogo Un array è una collezione di elementi dello stesso tipo – numeric, Boolean, string, etc. Creare un array o un cluster di controls/indicators richiede 2 fasi 1. Creare una shell vuota 2. Posizionare all’interno i controls/indicators voluti I cicli possono creare array – auto-indexing Le funzioni sugli Array sono nella Array subpalette della Functions palette Le funzioni aritmetiche sono polimorfiche Grafici: – Possibilità di personalizzazione – Più grafici possono essere visualizzati contemporaneamente Un Cluster racchiude tipi di dati differenti Le funzioni di Bundle e Unbundle functions sono usate per assemblare e disassembleare cluster

33 Lezione 6 Struttura Case e Sequence A.La struttura Case B.La struttura Sequence C.I Formula Nodes Obiettivi di apprendimento:

34 Struttura Case Nella Structures subpalette della Functions palette Trascinare o riquadrare i nodi all’interno della struttura I casi sono “impilati” come un mazzo di carte

35 Case: Boolean e Numeric Nota: tutte le possibili uscite di un Case devono essere collegate

36 Case: Intervalli – Default Case Nota: il “default case” è necessario se non sono specificati tutti i possibili “case”

37 Esercizio 6-1 Square Root.vi (sqrt(x)=error if x<0) Tempo a disposizione: 20 min.

38 Esercizio 6-1 Square Root.vi (sqrt(x)=error if x<0) Tempo a disposizione: 20 min. Time & Dialog palette

39 Automi a stati finiti Utili nella gestione delle GUI dei VI Si implementano grazie alla struttura CASE Relativamente facile da modificare ValueState NameDescriptionNext State No Event Monitor Boolean menu to select next state. Depends on Boolean button pressed. If no button is pressed, next state is No Event. 0LoginLog in userNo Event (-1) 1 2 Configure Acquisition Acquire (2) AcquireAcquire DataNo Event (-1)

40 Automi a stati finiti

41 Struttura Sequence Nella Structures subpalette della Functions palette Consente un’elaborazione di tipo “sequenziale”, Frame 0 (0..x), dove x è il numero totale di frames I frames sono “impilati” come un mazzo di carte

42 Sequence: passaggio dei dati Locals: passano un dato dal frame attuale al successivo Creati sul bordo di una struttura Sequenza Sequence local creato nel Frame 1 Dato non disponibile Dato disponibile

43 Esercizio 6-2 Time to Match Tempo a disposizione: 20 min.

44 Esercizio 6-2 Time to Match Tempo a disposizione: 20 min.

45 Formula Node Nella Structures subpalette; si usa il “Labeling Tool” Consente di implementare equazioni “complicate” Le variabili (dip e indipendenti) sono create ai bordi Il nome delle variabili è “case sensitive” Ogni equazione deve terminare con un ; Help: mostra le funzioni disponibili Nota: punto e virgola!

46 Condizioni nei Formula Nodes if (x >= 0) then y = sqrt(x) else y = -99999.0 end if Condizione Operatore condizionale Condizione VERA Condizione FALSA

47 Esercizio 6-3 Formula Node Exercise.vi ( a = tanh(x) + cos(x); y = a**3 + a; ) Tempo a disposizione: 20 min.

48 Esercizio 6-3 Formula Node Exercise.vi

49 Rimpiazzare le Sequence Aggiornare un Indicator da diversi frame di una sequence non è banale (e.g. local variables) Es: indicare la fine dell’esecuzione di più test: Data Flow Programming: i dati in uscita ad un tunnel sono aggiornati solamente alla fine dell’esecuzione dell’intera sequence

50 Rimpiazzare le Sequence L’accoppiata di un ciclo while e di un case può efficacemente sostituire una sequence In questo caso, il tunnel è aggiornato alla fine dell’esecuzione di un singolo “caso”:

51 Riepilogo Due strutture per il controllo del flusso di programmazione – Case structure – Sequence structure Case structure – Condizione Booleana o numerica – dipende dal selettore – il Subdiagram è posizionato all’interno della struttura – L’uscita di Case deve essere definita per tutti i casi Le Sequence structure consentono l’esecuzione “sequenziale” di un subdiagram I Locals consentono il passaggio dei dati tra i frame – Creati al bordo di una Sequence structure – Il dato è disponibile al frame successivo I Formula Nodes consentono l’immissione di equazioni in un diagram Le Sequence structures possono essere sostituite con un Case all’interno di un ciclo

52 Lezione 7 Stringhe e File I/O Obiettivi di apprendimento: A.Come creare controlli e indicatori di tipo stringa B.Alcune funzioni per la manipolazione di stringhe C.Come gestire le operazioni di file I/O D.Come formattare file ASCII per importarli nei fogli elettronici E.I VIs per la gestione dell’I/O ad alto livello

53 Stringhe Una stringa è una sequenza di caratteri (codificati secondo lo std. ASCII) Scopi molteplici – messaggi all’utente, controllo di strumentazione (GPIB), file I/O Gli String controls/indicators si trovano nella Controls >> String subpalette Menù contestuale >> Visible Item >> Scrollbar

54 Modalità di visualizzazione Normale Modalità PWD Modalità Caratteri Non Mostrabili Modalità Hex

55 Modalità di visualizzazione Caratteri non visualizzabili:

56 Funzioni stringa Concatenate Strings The quick brown fox jumped over the lazy dog. Stringa concatenata Stringhe spaces here String Length = 20 Length Stringa

57 Funzioni Stringa Se non si trova alcuna corrispondenza, offset past match vale -1

58 Funzioni stringa Convertire valori numerici in stringhe Convertire stringhe in valori numerici

59 Formattazione di una stringa

60 File I/O Tre livelli gerarchici: File Vis di tipo “High-level” Vis di livello intermedio Funzioni di I/O avanzate High Level File VIs File VIs e funzioni di livello intermedio Funzioni avanzate

61 File I/O VIs di livello intermedio Open/Create/Replace file – creare, aprire e sovracrivere un file Read File – acquisire dati da un file Write File – scrivere dati in un file Close File – chiudere un file Gestione degli errori –Subpalette Time & Dialog –Mostrarle in un dialog box all’utente USATE IL CONTEXT HELP!

62 Controllo degli errori Error In/Out: cluster contenente lo stato (boolean), il codice (Numeric) e la sorgente (stringa) dell’errore. Una funzione testa innanzitutto lo status e viene eseguita solamente se non ci sono errori, altrimenti passa il controllo alla successiva Subpalette “Time & Dialog”

63 Salvare dati in un File Open/Create/Replace apre o crea il file TEST1.DAT generando un refnum e un cluster degli errori occorsi Write File scrive i dati Close File chiude il file Simple Error Handler: gestisce la visualizzazione gli errori

64 Rileggere i dati da unFile Open/Create/Replace apre il file Read File legge un numero prefissato di byte dal file Close File chiude il file Simple Error Handler:gestione della visualizzazione degli errori

65 Esercizio 7-1 File Writer.vi Tempo a disposizione: 20 min.

66 Esercizio 7-1 File Writer.vi Tempo a disposizione: 20 min.

67 Esercizio 7-2 File Reader.vi Tempo a disposizione: 20 min.

68 Esercizio 7-2 File Reader.vi Tempo a disposizione: 20 min.

69 Formattare una Stringa I fogli elettronici sono strumenti molto diffusi per l’elaborazione e la gestione di dati numerici Ci sono diversi formati per il salvataggio dei dati. Uno dei più diffusi è il cosiddetto tab-delimited: –Colonne diverse sono separate da un carattere di tabulazione –Righe diverse sono individuate da un carattere di fine linea Utilizzo di appositi LabVIEW File I/O Vis (Format Into File = Format Into String + Write File)

70 Creare uno Spreadsheet File TabEnd of Line Importato in un foglio elettronico:

71 High-level File I/O VIs Write to Spreadsheet File Read from Spreadsheet File Write Characters to File Read Characters from File Read Lines from File

72 Riepilogo Una Stringa è un insieme di caratteri ASCII – usi: –Messaggi all’utente –Controllo della strumentazione (GPIB) –File I/O Esistono diverse funzioni per le stringhe – Strings palette del Functions menu Tre livelli gerarchici di File I/O VIs –High-level VIs –Vis e funzioni di livello intermedio –Funzioni avanzate File in formato foglio elettronico –Colonne separate da una tabulazione –Righe separate da un End-of-line –Write/Read high-level File I/O VIs

73 Costruire appllicazioni con LV Selezionare Build Application or Shared Library (DLL) dal menù Tools Creare un “distribution kit” che includa un installer per distribuire l’applicazione

74 VI library.llb File speciale all’interno del quale si possono salvare e caricare i VI +Fino a 255 caratteri per i nomi a prescindere dall’ OS +Ottimizzazione nell’uso dello spazio su disco +Alcuni VIs in una LLB possono essere di “Top Level” così che appaiano per primi quando mostrati +Esportare i VI su altre piattaforme è più semplice –Le prestazioni del sistema diminuiscono –Non c’è gerarchia; tutti i VI allo stesso livello –Non si possono usare le funzioni di FIND del OS –Il controllo del codice è più difficoltoso


Scaricare ppt "Opzioni Block diagram. Lezione 5 Array, Grafici e Cluster A.Uso degli arrays B.Creazione di arrays tramite i cicli C.Alcune funzioni base per la manipolazione."

Presentazioni simili


Annunci Google