Introduzione al linguaggio di programmazione LabVIEW

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

Raccolta degli esercizi svolti in aula

Introduzione a LabVIEW

Dispense delle Esercitazioni dei moduli:

Programma del corso Elettronica 2

Docente Prof. Claudio De Capua Ing. Antonella Meduri

Ing. Simone Giovannetti

Esercizi di base per l apprendimento di LabView

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

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

Introduzione a National Instruments LabVIEW

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:

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

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

Introduzione a LabVIEW

Introduzione a LabVIEW

Lab 01 Introduzione a Codelite

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

FONDAMENTI DI ACQUISIZIONE DATI E INTRODUZIONE AL SISTEMA LabVIEW

Conversione Analogico/Digitale

Insert > Object > Chart

Sviluppare un programma in FORTRAN

Strutture dati e loro organizzazione. Gabriella Trucco

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

Informatica Applicata al Suono Tutorial Matlab

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

Excel & VBA. Excel e Visual Basic for Application

Microsoft Access. Microsoft Access. Maurizio Rebaudengo, Paolo Garza 1. Microsoft Access. Creazione base di dati. Apertura di una base dati

ELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli

Unità Didattica 2 Linguaggio C. Espressioni, Operatori e Strutture linguistiche per il controllo del flusso

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

Esercitazione Strumentazione virtuale

LabVIEW. E un acronimo per. "Laboratory Virtual Instrument Engineering Workbench. Ideato dalla National Instrument nel 1986 È standard mondiale per:

STRUMENTAZIONE VIRTUALE: LabVIEW

Javascript. - Corso Web Design - Media Dream Academy. Stefano Gaborin

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

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

Function Block Diagram

Prefazione. Capitolo 1 Sistemi di elaborazione 1

Prefazione... xi. Da leggere prima di iniziare...xiv. Capitolo 1 Introduzione a JavaScript Sezione A Programmazione, HTML e JavaScript...

TIPS AND TRICKS 04 MODELLAZIONE E RISPOSTA DI UN ARCO IN MURATURA RINFORZATO CON ELEMENTI IN F.R.P. (Update number

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura

Java il Corso Fondamentale

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

Grafici. 1 Generazione di grafici a partire da un foglio elettronico

Istruzioni di ripetizione in Java 1

Programmazione web lato client con JavaScript. Marco Camurri 1

Indice Introduzione I fondamenti di C#

Misura, controllo e collaudo per la produzione industriale

Corso di Informatica di Base

Indice PARTE A. Prefazione Gli Autori Ringraziamenti dell Editore La storia del C. Capitolo 1 Computer 1. Capitolo 2 Sistemi operativi 21 XVII XXIX

INTRODUZIONE A SIMULINK

Programmazione in Java (I modulo)

JavaScript Core Language. Prof. Francesco Accarino IIS Atiero Spinelli Sesto San Giovanni via leopardi 132

Cos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia

6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a

Utilizzo delle Maschere in Microsoft Access

Introduzione a Java. Riferimenti

LabVIEW TM Core 2 Manuale degli Esercizi

3. Le routine evento in Access 2000/2003

Linguaggio Java. Robusto. Orientato agli oggetti. Protegge e gestisce dagli errori. Non permette costrutti pericolosi

Automazione Excel con Visual Basic (base)

Corso Analista Programmatore Microsoft Corso Online Analista Programmatore Microsoft

I dati rappresentati (tutti di pura fantasia) sono contenuti in un file excel denominato Personale.xls.

Funzioni, Stack e Visibilità delle Variabili in C

Il linguaggio PHP. Elementi base

La Back Office Console consente di costruire lo scheletro degli schema.

Debug di un programma

Capitolo Tavola e grafico

Scritto da Domenica 08 Agosto :43 - Ultimo aggiornamento Mercoledì 21 Marzo :55

Indice. Prefazione. 3 Oggetti e Java 53

Formalismi per la descrizione di algoritmi

Windows. La prima realizzazione di un ambiente grafico si deve alla Apple (1984) per il suo Macintosh. La gestione dei file conserva la logica del DOS

Panoramica sulla Certificazione

Microsoft Visio 2002 UML Sergio Colosio

Training per esperti PROGRAMMAZIONE A EVENTI

Utilizzo delle Maschere in Microsoft Access

VBA Principali Comandi

Programmazione: variabili e operatori. Variabili

Video Scrittura (MS Word) Prima Parte

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 17/01/2014/ Foglio delle domande / VERSIONE 1

Microsoft Excel. Nozioni di base

UD4 - MATLAB. M-file. Efficienza degli algoritmi. Formati d uscita

PLC CodeSys. Esercitazione 3. Automation Robotics and System CONTROL. Università degli Studi di Ferrara

Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1

Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt);

Appunti di informatica. Lezione 10 anno accademico Mario Verdicchio

ISTRUZIONI XCODE. Autore: Luca Florio (luca.florio<at>polimi.it)

ISTITUTO STATALE D ISTRUZIONE SUPERIORE FERRARIS - BRUNELLESCHI EMPOLI Anno scolastico 2015/2016

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Excel & VBA. Excel e Visual Basic for Application

Programmare con Labview

Matlab. Istruzioni condizionali, cicli for e cicli while.

Struttura logica di un programma

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I

Indice generale Prefazione...xiii Capitolo 1 Introduzione...1 Capitolo 2 Sviluppo del software, tipi di dati ed espressioni...31

RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO

Capitolo 6 - Array. Copyright by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved.

Transcript:

Introduzione al linguaggio di programmazione LabVIEW Ing. Gianfranco Miele (g.miele@unicas.it) www.docente.unicas.it/gianfranco_miele March 22, 2011

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

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

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

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

Front Panel Icona/Connettore Toolbar Controllo numerico Controllo Knob Legenda Etichetta Indicatore Chart

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

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

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 tools 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

Tecniche di debug 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

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

Realizzazione di un SubVI Functions >> Select a VI Trascinare l icona sul diagramma chiamante

Ciclo While Qui va il codice da iterare Iteration terminal Ripetere? Conditional terminal Il ciclo termina quando si fornisce FALSE al conditional terminal Il codice è eseguito almeno una volta L'iteration terminal restituisce il numero di iterazioni raggiunto

Ciclo While

Waveform Chart Label Legenda Palette Aggiornamento: Strip chart Scope chart Sweep chart

Visualizzazione con Waveform Chart Ad ogni iterazione il waveform chart riceve uno scalare

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

Comportamento dei controlli booleani Switch - Commuta per pressione e rilascio Latch Ritorna nello stato di default quando viene letto dal diagramma When pressed When released Until released

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 register 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

Shift register

Shift register 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

Shift register

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

Array 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 array di 10 elementi 0 1 2 3 4 5 6 7 8 9 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

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

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

Creazione 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 Array 7 3 2 5 4 Number of Elements element dimension size Initialize Array initialized array 10 4 10 10 10 10

Funzioni per gli array 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 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 Index array Estrae una colonna 0 0 0 Estrae una riga Dal menu di contesto della Index Array: " Add dimension " Disable input

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

Single plot waveform graph 1D Array Terminale del Waveform Graph (è un Array 1D) 1D Array 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 1D Arrays 2D array Terminale del Waveform Graph (è un Array 2D) clusters cluste r array Terminale del Waveform Graph (è un Array di Cluster)

XY graph Single-plot XY Graph Multi-plot XY Graph

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

Funzioni per i cluster Modifica di un elemento di un Cluster:

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

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

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

Sequence I sottodiagrammi vengono eseguiti uno dopo l'altro Consente di fissare l'ordine di esecuzione di VI non dipendenti

Sequence locals Passano dati da un frame al solo frame successivo Si definiscono sul bordo della Sequence 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

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