Corso di Misure per l Automazione e la Produzione Industriale

Documenti analoghi
LabView Parte 1 IL LABVIEW LEZ_1. Corso di. Misure per la Automazione e la Qualità (Studenti Ingegneria Elettrica III anno Nuovo Ordinamento )

IL LABVIEW LEZ_2. Corso di. Misure per la Automazione e la Qualità (Studenti Ingegneria Elettrica III anno Nuovo Ordinamento )

Introduzione al linguaggio di programmazione LabVIEW

Evoluzione della Strumentazione. Software Architecture. Multiplatform Compatibility

LabVIEW parte II. Ing. Gianfranco Miele November 3, 2010

LabVIEW. Laboratory Virtual Instrument Engineering Workbench. Esempio. Misure Elettroniche 1. Introduzione. Differenze tra strumento stand-alone e VI

Laboratory Virtual Pannello frontale

LabVIEW (Laboratory Virtual Instrument Engineering Workbench)

IL LABVIEW LEZ_3. Corso di

LabView IL LABVIEW LEZ_3. Parte 3. Corso di Strumentazione Virtuale. Corso di

L ambiente di lavoro di LabVIEW

LabVIEW - generalità

Corso di. Misure per la Automazione e la Qualità (Studenti Ingegneria Elettrica III anno Nuovo Ordinamento ) IL LABVIEW LEZ_3

Dispense delle Esercitazioni dei moduli:

Introduzione a LabVIEW

DEI DATI. Training per principianti RAPPRESENTAZIONE SCUOLA DI LABVIEW

Dipartimento di Ingegneria Industriale e dell Informazione. Acquisizione dati da sistemi di misura

Programma del corso Elettronica 2

Raccolta degli esercizi svolti in aula

Ing. Simone Giovannetti

Dipartimento di Ingegneria Industriale e dell Informazione. Programmazione di un convertitore digitale/analogico

Docente Prof. Claudio De Capua Ing. Antonella Meduri

CONOSCENZE / CONTENUTI SVILUPPATI Tecnologie e Progettazione di sistemi elettrici ed elettronici 3 FEN

Dispense delle Esercitazioni dei moduli:

Dipartimento di Ingegneria Industriale e dell Informazione. Realizzazione e programmazione di un convertitore digitale/analogico

Esercizi di base per l apprendimento di LabView

Università di Cagliari

Conversione Analogico/Digitale

Lab 01 Introduzione a Codelite

LabView: Corso Base pag. 7

What is LabVIEW???? Pietro Giannone. Dipartimento di Ingegneria Elettrica Elettronica e dei Sistemi. Università degli Studi di Catania

Sviluppare un programma in FORTRAN

NOTE SULL USO DI ECLIPSE per la compilazione di programmi c

Fondamenti di informatica T-1 (A K) Esercitazione 6: Eclipse

FONDAMENTI DI ACQUISIZIONE DATI E INTRODUZIONE AL SISTEMA LabVIEW

Le basi del linguaggio Java

Gerardo Iovane Giuseppe Lamponi Luigia Puccio Metodi matematici per l analisi delle immagini. Applicazioni e laboratorio

Introduzione a National Instruments LabVIEW

Dipartimento di Ingegneria Industriale e dell Informazione. Sistema per la misura del guadagno di corrente beta in transistori bipolari

Le etichette nei programmi. Istruzioni di branch: beq. Istruzioni di branch: bne. Istruzioni di jump: j

Dati due punti sul piano calcolare la loro distanza

FUNZIONI. Ivan Lanese

4. I moduli in Access 2000/2003

Insert > Object > Chart

Informatica Applicata al Suono Tutorial Matlab

A B C LabVIEW. Sviluppo di Software per la Stazione di raggi cosmici EEE

Corso di Elettronica Industriale (CdL in Ingegneria Meccatronica, sede di Mantova) Acquisizione dati da sistemi di misura

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

2 Lavorare con Eclipse

Simulazione di sistemi non lineari Introduzione a Stateflow

Elementi di Informatica A. A. 2016/2017

In questa lezione Strutture dati elementari: Pila Coda Loro uso nella costruzione di algoritmi.

Implementazione di DFA in C

ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli

gdb: manuale di rapida consultazione

PROGRAMMA = ALGORITMO

Excel & VBA. Excel e Visual Basic for Application

Esercitazioni di Fondamenti Informatica - Modulo A 1

Capitolo Tavola e grafico

Unix e comandi di base

Introduzione alla programmazione

DEBUGGING. Ivan Lanese

Lezione 6 Introduzione al C++ Mauro Piccolo

2010 Esercitazioni di Strumentazione Virtuale

COSTRUZIONE DI UN APPLICAZIONE

Programma svolto di INFORMATICA. Classe 3 - indirizzo MERCURIO A.S. 2009/2010

Lezione 8: Stringhe ed array multidimensionali

Programma svolto di INFORMATICA. Classe 3M - indirizzo MERCURIO A.S. 2010/2011

INTRODUZIONE A VISUAL STUDIO

Raccolta di tutorial Python #1: basi e Tkinter dal sito francescomilanese.com SOMMARIO

Lanciare MPLAB IDE (Start->Programmi->Mirochip->MPLAB IDE v7.22->mplab IDE):

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

Compilatori. g ++ prog.c. che crea il file eseguibile a.out. È utile conoscere alcune opzioni di g ++

Introduzione al MATLAB c Parte 3 Script e function

Corso di Laboratorio di Sistemi Operativi

Indice. Prefazione. 3 Oggetti e Java 53

Fondamenti di Informatica T2 Modulo 2

Installazione. Eclipse. Workspace. Primo Avvio. Fondamenti di Informatica T2 Modulo 2. Università di Bologna A.A. 2008/2009

Esercitazione Strumentazione virtuale

Strutture dati e loro organizzazione. Gabriella Trucco

Rappresentazione dell informazione

Introduzione al Simulink

Il linguaggio PHP. Insegnarvi tutto il PHP? Non esattamente Obiettivo: insegnarvi ad interagire via web con una base dati

Introduzione alla programmazione in linguaggio C

Algebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche

Introduzione al MATLAB c Parte 3 Script e function

Introduzione al MATLAB c Parte 3 Script e function

Il primo programma C. Un programma utile. Compilazione & linking con il compilatore GNU. Introduzione alla programmazione in linguaggio C

Capitolo Tavola e grafico

INTRODUZIONE ALL UTILIZZO DI LABVIEW IN UN LABORATORIO DI MISURE PER L AUTOMAZIONE

L AMBIENTE CODE BLOCKS E L IO

Programmazione con Java

CORSO DI LABVIEW SCUOLA DI DOTTORATO

JavaScript JavaScript Programmazione lato client JScript JavaScript ECMAScript

Programma svolto. di SISTEMI AUTOMATICI

Transcript:

Corso di Misure per l Automazione e la Produzione Industriale

IL LABVIEW

LabView Ambiente di sviluppo grafico: - Codice - Interfaccia utente Modulare Compilatore 32 bit Elevato numero di funzioni Librerie per la gestione della strumentazione Librerie per l'acquisizione dati Possibilità di includere routine in altro linguaggio

Librerie di funzioni Calcolo, confronto, cicli di controllo Operazioni su aggregati di dati (stringhe, array,...) I/O su file Gestione strumentazione (RS232, 488, VXI,...) Acquisizione dati Analisi (Generazione ed elaborazione segnali, Statistica, Fitting, Algebra lineare,...) Comunicazione (DDE, TCP/IP, ActiveX)

Virtual Instrument (VI) Il Front Panel Il Block Diagram L icona/connettore

Il Front Panel E l interfaccia utente dell applicazione Contiene: - Controlli (input) - Indicatori (output)

Elementi del Front Panel Icona/Connettore Toolbar Controllo numericol Controllo Knob Legenda Etichetta Indicatore Chart

Il Block Diagram - E il codice sorgente dell applicazione (in Linguaggio G) - Controlli e indicatori del pannello appaiono come Terminali - Nodi o funzioni: ricevono dati dai connettori di ingresso e forniscono dati su quelli in uscita

Elementi del Block Diagram Indicatore Terminale Controllo Terminale Esempio 1 Costante numerica Nodo Somma

Dataflow programming Un nodo è eseguito quando i dati sono disponibili a TUTTI i suoi terminali di ingresso Un nodo fornisce i dati ai suoi terminali di uscita quando è terminata la sua esecuzione Se non esiste dipendenza tra due nodi, l ordine con cui verranno eseguiti non è prevedibile!

Il modello di programmazione di LabView è... Data driven e non è... Control driven Event driven Object oriented

Dataflow programming Un filo collega un unica sorgente di dati con uno o più nodi Il colore e lo spessore del filo individuano il tipo di dato Scalar Array 1D Array 2D Numeri Arancione (floating point) Blu (interi) Booleani Verde Stringhe Viola

L ambiente di sviluppo: Le palette Palette delle Funzioni (Diagramma) Palette dei Controlli (Pannello)

L ambiente di sviluppo: la Toolbar Debugging Stop Continuous Run Run

L ambiente di sviluppo: i Tool Tastiera: Tab Spazio Operating: Inserimento dati Positioning: Posizionamento e ridimensionamento Labeling: Gestione etichette Wiring: Collegamento (nel Block Diagram) Object pop-up: Menu dell'oggetto Scrolling: Scorrimento della finestra Breakpoint: Inserimento stop (debug) Probe: Visualizzazione dati nei fili (debug) Color copy: Copia di un colore Coloring: Per colorare un oggetto

Combinazioni di tasti <Ctrl-R> Esegue il VI <Ctrl-E> Mostra pannello/diagramma <Ctrl-H> Finestra di context help <Ctrl-B> Cancella fili interrotti <Ctrl-F> Contenuto della memoria <Tab> e <Spazio> Tools <Shift> Incremento/decremento veloce

Tecniche di debugging Click sulla freccia spezzata: Info sull errore Highlighting button: Esecuzione animata Probe: Mostra il valore dei dati mentre scorrono lungo i fili Breakpoint: ferma l esecuzione quando i dati sono disponibili sul filo Single Step: Esecuzione passo-passo Step Over: Esecuzione passo-passo, non entra nei nodi Step Out: Esecuzione passo-passo, esce dai nodi nei quali è entrato

SubVI Un VI può essere usato nel Block Diagram di un altro VI di livello più alto Nel VI chiamante, un SubVI è rappresentato con la sua icona

Disegno dell icona Associazione di controlli e indicatori alle caselle del connettore Realizzazione di un SubVI Salvataggio su disco

Chiamata ad un SubVI Functions >> Select a VI Trascinare l icona sul diagramma chiamante Esempio 2

Il ciclo while Da Functions >> Structures Iteration terminal Qui va il codice da iterare Ripetere? Conditional terminal " Il ciclo termina quando si fornisce FALSE al conditional terminal " Il codice è eseguito almeno una volta " L'iteration terminal dà il numero di iterazioni raggiunto

Ciclo while: esempio Esempio 3

Label Waveform chart Legenda Palette

Visualizzazione con waveform chart Ad ogni iterazione il waveform chart riceve uno scalare Esempio 4

Tipi numerici e conversioni " Interi con segno: I8, I16, I32 " Interi senza segno: U8, U16, U32 " In virgola mobile: SGL (32), DBL (64), EXT " Complessi Coercion dot I 16 DBL DBL

Ciclo while temporizzato Esecuzione di azioni ad intervalli prestabiliti Impegno limitato di risorse Adeguamento ai tempi di risposta dell'utente

Grafici multiple plot Bundle (nella palette Functions >> Cluster): assembla i suoi ingressi in un unico cluster Un cluster è una struttura che raccoglie più elementi in un nuovo tipo di dato

Shift Registers Trasferiscono dati da una iterazione alla successiva Si inseriscono con un right-click sul bordo del loop Il terminale destro conserva il dato alla fine della iterazione Il terminale sinistro fornisce il dato alla iterazione successiva Inizializzazione Da passo precedente Per il prossimo passo

Esempio 5 Shift Registers: esempio

Shift Registers 1 loop prima 2 loop prima 3 loop prima L'ultimo valore va passato qui Si possono aggiungere altri shift register per ottenere valori di iterazioni precedenti

Esempio: Running average

Il ciclo for Numero di iterazioni da eseguire Numero corrente di iterazioni Esegue il codice al suo interno un numero prestabilito di volte

Arrays " Collezioni di elementi (dati) dello stesso tipo " Una o più dimensioni, fino a 2 31 elementi per dimensione " Si accede agli elementi con un indice per dimensione " Il primo elemento ha sempre indice 0 Indice 0 1 2 3 4 5 6 7 8 9 array di 10 elementi 1.2 3.2 8.2 8.0 4.8 5.1 6.0 1.0 2.5 1.7 Array bidimensionale 0 1 2 3 4 0 1 2 3 4 5 6

1. Selezionare Array dalla palette dei controlli Controlli e indicatori per gli array 2. Inserire un controllo del tipo desiderato nella Array Shell Add Dimension per 2D arrays Procedura analoga per le costanti array

Autoindexing Il loop accumula l'array al suo margine Auto-Indexing abilitato (Default nel For) 1 D a r r a y 0 1 2 3 4 5 Auto-Indexing disabilitato (Default nel While) Scalare risultato dell'ultima iterazione

Creazione di array 2D 1D array # righe 0 1 2 3 4 5 # colonne 0 1 2 3 2D array Il loop interno crea gli elementi di ogni riga Il loop esterno sovrappone le righe

Autoindexing e lettura di array Non deve essere impostato direttamente Il ciclo viene eseguito per un numero di volte pari al numero di elementi dell'array collegato

Funzioni per gli array (1) Array 7 3 2 5 4 Number of Elements element dimension size Initialize Array initialized array 10 4 10 10 10 10 Esempio 6

Funzioni per gli array (2) array Elemento Array Elemento Array 3 2 5 7 1 4 2 Build Array Array con il nuovo elemento accodato 3 2 5 7 1 4 2 La funzione Build Array è resizable Nuovo array 1D Array 1D Array 3 2 5 1 4 2 3 2 5 1 4 2 2D Array Dal menu di contesto: change to element change to array 1D Array 1D Array 3 2 5 1 4 2 3 2 5 1 4 2 1D Array

Funzioni per gli array (3) array index(0) length subarray Array Subset Array 1 2 7 3 2 5 8 Index Length 2 4 7 3 2 5 Array Subset array index element Array 3 2 5 7 1 4 2 Index 2 Element 5 Index Array 2D Array 3 2 5 1 4 2 Row Index Column Index 0 2 Element 5

Funzioni per gli array (4) Index array Estrae una colonna 0 0 0 Dal menu di contesto della Index Array: " Add dimension " Disable input Estrae una riga

Polimorfismo Ingressi delle funzioni di tipo diverso " Comportamento dipendente dal tipo degli ingressi Tutte le funzioni aritmetiche sono polimorfiche Combinazione Scalare + Scalare 5 2 7 Risultato Scalare Array + Scalare 1 4 2 2 3 6 4 Array Array + Array 3 2 5 1 4 2 4 6 7 Array Array + Array 1 4 2 3 2 5 7 4 6 7 Array

Waveform Graph Tracciano un array di valori numerici rispetto all'indice Legenda Palette Esempio 7

Single-Plot Waveform Graph 1D Array Terminale del Waveform Graph (è un Array 1D) 1 D A r r a y Terminale del Waveform Graph (è un Cluster) " X0 è il valore iniziale per le ascisse " deltax è la distanza orizzontale tra i punti del grafico

Multiple-Plot Waveform Graph Build Array 1 D A r r a y s 2D array Terminale del Waveform Graph (è un Array 2D) clusters cluster array Terminale del Waveform Graph (è un Array di Cluster) Esempio 8

XY Graph Traccia un array rispetto ad un altro Single-plot XY Graph Multi-plot XY Graph

I Cluster " Combinano più strutture dati in un nuovo tipo dati " Possono contenere elementi di tipo diverso " Si possono definire costanti, controlli e indicatori di tipo Cluster " L'ordine degli elementi è importante Unbundle

Altre funzioni per i Cluster Modifica di un elemento di un Cluster:

La struttura Case " Solo un sottodiagramma viene eseguito " Il valore passato al selettore determina il codice da eseguire " Il selettore può essere booleano, numerico o stringa Selettore booleano: if...then...else Esempio 9

Ingressi ed uscite del case (tunnel) Tunnel di uscita " In TUTTI i case devono essere collegati TUTTI i tunnel

La struttura Case " Con selettori di tipo numerico o stringa si possono gestire scelte multiple " Add Case dal menu di contesto per aggiungere nuove scelte " Un Case deve essere quello di default Esempio 10

Menu di scelta " I controlli List & Ring associano un intero ad una voce selezionabile

La struttura Sequence " I sottodiagrammi vengono eseguiti uno dopo l'altro " Consente di fissare l'ordine di esecuzione di VI non dipendenti Esempio 11

Sequence Locals Passano dati da un frame al solo frame successivo Si definiscono sul bordo della Sequence Esempio 12 Dati non disponibili Sequence local in uscita dal Frame 1 Dati disponibili

Formula Node - Implementazione di equazioni complicate - Variabili create sul bordo - I nomi delle variabili sono case sensitive - Ogni istruzione deve terminare con un punto e virgola (;) - <Ctrl-H> per l'elenco delle funzioni disponibili Esempio 13

Formula Node: Conditional Branching if (x >= 0) then y = sqrt(x) else y = -99999.0 end if Conditional Operator False Condition Condition True Condition

Formula Node: Variabili temporanee " Si definiscono come uscite, ma non vengono collegate

Le Stringhe Una stringa è una sequenza di caratteri Ogni carattere ha una corrispondente codifica numerica in byte (8 bit) secondo lo standard ASCII I primi 32 dei 256 caratteri ASCII non sono visualizzabili (controllo) Gli ultimi 128 caratteri costituiscono il set esteso Impieghi: visualizzazione di messaggi, I/O su file, controllo di strumentazione Esistono controlli e indicatori di tipo stringa Stringa: V D C - 1 2. 4 5 6 # ASCII: 86 68 67 32 45 49 50 46 52 53 54

Display Modes per gli indicatori stringa Normal display Password display \ code display Hex display Backslash codes per alcuni caratteri di controllo: \b backspace \s spazio \r return (CR) \n new line (LF) \t tab Esempio 14

Funzioni per le stringhe (1) String Length String Length = 20 Concatenate Strings Strings The quick brown fox jumped over the lazy dog. Concatenated String Esempio 15

Funzioni per le stringhe (2) String Subset String Length Offset DC Substring Match Pattern quick brown fox

Funzioni per le stringhe (3) Format Into String ( è resizable ) Scan From String ( è resizable ) Esempio 16

Simulazione di segnali Generatore di 1) Onda Sinusoidale 2) Onda quadra 3) Onda Trinagolare 4) Onda a rampa

Simulazione di segnali GET WAVEFORM COMPONENTS BUILD WAVEFORM Esempio 17

Analisi di segnali Misure nel dominio del tempo e della frequenza

Analisi di segnali Esempio 18