Sei sulla pagina 1di 89

Alessandro PLANTAMURA

Technical Marketing Engineer - NI Italy

/ 89
Agenda
Quanto più possiamo mostrarvi in una mattinata
• Cos’è LabVIEW
• Come usare LabVIEW
• Lezione 1 – Esploriamo LabVIEW
• Lezione 2 – Pannello Frontale
• Lezione 3 – Diagramma a Blocchi
• Lezione 4 – Principi di programmazione
• Lezione 5 – Documentazione e debug
• Lezione 6 – Interfacciamento all’Hardware
• Risorse

2 / 89
COS’È LabVIEW

3 / 89
CHE COS’E’ LabVIEW
LabVIEW è un ambiente di programmazione grafica
creato specificatamente per progettisti e tecnici allo scopo
di farli diventare più produttivi e garantendo la presenza di
tutti quegli strumenti per prototipare, progettare e
realizzare le loro applicazioni.
/ 89
Linguaggio di Librerie di
programmazione Supporto analisi e calcolo
Hardware tecnico-
G scientifico

Interfaccia Astrazione
Modelli di
grafica e della
calcolo
reportistica tecnologia
/ 89
Linguaggio di Librerie di
programmazione Supporto analisi e calcolo
Hardware tecnico-
G scientifico

Interfaccia Astrazione
Modelli di
grafica e della
calcolo
reportistica tecnologia
/ 89
Linguaggio di
Analysis and
programmazione Hardware
Technical Code
Support
G Libraries

UI Components
Technology Models of
and Reporting
Abstraction Computation
Tools
/ 89
Linguaggio di programmazione G
Cos’è LabVIEW
• Modello di programmazione intuitivo, simile a un diagramma
di flusso
 Permette di concentrarsi sui dati e le operazioni
 Astrae molte delle complessità amministrative delle
programmazione
• Curva di apprendimento più stretta rispetto alla tradizionale
programmazione testuale
• Rappresenta in maniera naturale le applicazioni regolate dai
dati attraverso temporizzazione e parallelismo

8 / 89
G Supporto
Analysis and
Technical Code
Programming Hardware
Language
Libraries

UI Components
Technology Models of
and Reporting
Abstraction Computation
Tools
/ 89
Supporto Hardware
Cos’è LabVIEW
• Supporto per migliaia di dispositivi,
tra cui:
 Strumentazione scientifica
 Dispositivi di acquisizione dati
 Sensori
 Videocamere
 Motori e attuatori

10 / 89
Supporto Hardware
Cos’è LabVIEW
• Supporto per migliaia di dispositivi, INIZIALIZZA
tra cui:
 Strumentazione scientifica
Dispositivi di acquisizione dati

CONFIGURA
 Sensori
 Videocamere
 Motori e attuatori
• Modello di programmazione comune LEGGI/SCRIVI
tra tutti i dispositivi Hardware

CHIUDI

11 / 89
Supporto Hardware
Cos’è LabVIEW
• Supporto per migliaia di dispositivi, INIZIALIZZA
Macintosh Windows
tra cui:
Linux

 Strumentazione scientifica
 Dispositivi di acquisizione dati
CONFIGURA
 Sensori Desktop Platform
 Videocamere
 Motori e attuatori
• Modello di programmazione Real-Time LEGGI/SCRIVI
comune tra tutti i dispositivi FPGA MPU

Hardware
• Codice versatile che supporta
numerosi target CHIUDI
Embedded Platform

12 / 89
G Hardware Librerie di analisi
e calcolo tecnico-
Programming Support scientifico
Language

UI Components
Technology Models of
and Reporting
Abstraction Computation
Tools
/ 89
Librerie di analisi e di calcolo tecnico-scientifico
Cos’è LabVIEW
• National Instruments sviluppa
LabVIEW attraverso un processo
accreditato ISO-9001
• Librerie di:
 analisi matematica

14 / 89
Librerie di analisi e di calcolo tecnico-scientifico
Cos’è LabVIEW
• National Instruments sviluppa
LabVIEW attraverso un processo
accreditato ISO-9001
• Librerie di:
 analisi matematica
 signal processing

15 / 89
Librerie di analisi e di calcolo tecnico-scientifico
Cos’è LabVIEW
• National Instruments sviluppa
LabVIEW attraverso un processo
accreditato ISO-9001
• Librerie di:
 analisi matematica
 signal processing
 algoritmi di controllo

16 / 89
Librerie di analisi e di calcolo tecnico-scientifico
Cos’è LabVIEW
• National Instruments sviluppa
LabVIEW attraverso un processo
accreditato ISO-9001
• Librerie di:
 analisi matematica
 signal processing
 algoritmi di controllo
• Librerie di:
 communicazione
 file I/O
 Connettività

17 / 89
Librerie di analisi e di calcolo tecnico-scientifico
Cos’è LabVIEW
• National Instruments sviluppa
LabVIEW attraverso un processo
accreditato ISO-9001
• Librerie di:
 analisi matematica
 signal processing
 algoritmi di controllo
• Librerie di:
 communicazione
 file I/O
 connettività
• Librerie di funzioni che gestiscono
dati nello stesso formato riportato
dai driver hardware

18 / 89
G Hardware
Analysis and
Technical Code
Programming Support
Language
Libraries

Interfaccia
Technology Models of
grafica e
reportistica Abstraction Computation
/ 89
Interfaccia grafica e reportistica
Cos’è LabVIEW
• Controlli interattivi come grafici, strumenti di misura, e
tabelle per visualizzare i dati acquisiti

20 / 89
Interfaccia grafica e reportistica
Cos’è LabVIEW
• Controlli interattivi come grafici, strumenti di misura, e
tabelle per visualizzare i dati acquisiti
• Strumenti per salvare i dati in file o database, o per
generare report in maniera automatica

21 / 89
G Hardware
Analysis and
Technical Code
Programming Support
Language
Libraries

UI Components Astrazione
Models of
and Reporting della
Computation
Tools tecnologica
/ 89
Astrazione della tecnologia
Cos’è LabVIEW
• Poter sfruttare le tecnologie emergenti come chip FPGA, CPU
multicore e macchine virtuali, senza imparare nuovi linguaggi e
affrontare ulteriori sforzi di sviluppo
• Utilizzare i più comuni protocolli e piattaforme senza perdersi nei
dettagli

Windows XP LabVIEW Real-Time

NI Real-Time Hypervisor

I/O RAM CPUs

23 / 89
G Hardware
Analysis and
Technical Code
Programming Support
Language
Libraries

UI Components
Technology Modelli di
and Reporting
Abstraction calcolo
Tools
/ 89
Modelli di calcolo
Cos’è LabVIEW
• Sintassi per la simulazione, matematica testuale, statechart,
nodi component-level IP (CLIP), DLL e altri modelli sono
disponibili nei casi in cui G non è la rappresentazione più
naturale della soluzione.
Flusso di dati Codice C Simulazione Matematica testuale Diagramma di stato

LabVIEW
Programmazione Grafica

25 / 89
Evoluzione dell’astrazione Software
Benefici di LabVIEW
Piattaforma grafica di
sviluppo di sistemi
Livello di astrazione

C#

C++

Linguaggio
assembly
Codice
macchina

Complessità del sistema

26 / 89
COME USARE LabVIEW

27 / 89
Applicazioni con LabVIEW
Come usare LabVIEW

Energia verde Macchine medicali Applicazioni nella fisica

Acquisizione e controllo a
Condition monitoring Monitoraggio strutturale
bordo macchina

28 / 89
Sistema di Monitoraggio in Acciaieria basato su
LabVIEW e CompactRIO
DANIELI AUTOMATION

• La sfida: Realizzare un sistema


di monitoraggio a basso costo,
flessibile e facilmente
riconfigurabile in grado di
valutare le prestazioni di un forno
ad arco elettrico dislocato in
un’acciaieria nella
Confederazione Russa.

29 / 89
• LA SOLUZIONE HiSpike è il
nome dell’applicativo che è stato
sviluppato in LabVIEW di
National Instruments integrato ad
un sistema CompactRIO.
L’accesso alla rete direttamente
dall’applicativo consente analisi e
controlli in realtime sul
funzionamento di un
trasformatore sul quale si potrà
programmare interventi di
manutenzione preventiva per
ridurre i tempi di blocco
dell’impianto a causa di rotture
impreviste .

30 / 89
Noise & Vibration Analyzer
Come usare LabVIEW
• LA SFIDA
Uno strumento trasportabile ideale per le esigenze di
acquisizione ed elaborazione dei segnali di rumore e
vibrazione in grado di garantire la realizzazione di
campagne di misura per la caratterizzazione di macchine
rotanti, per l'analisi strutturale, per l'analisi acustica in
generale.

• LA SOLUZIONE
Uno strumento particolarmente compatto, grande quanto il
palmo di una mano, che può essere collegato ad un
notebook: compattezza e versatilità non vanno però a
scapito delle prestazioni tecniche. Infatti il sistema di
acquisizione, dotato delle più moderne tecnologie, adotta
convertitori AD a 24 bit di tipo Delta-Sigma a
campionamento simultaneo fra canali.

31 / 89
Come posso utilizzare LabVIEW?
Come usare LabVIEW
Acquisizione dati ed
• Acquisizione
elaborazione dei dati ed
segnali • Misura di ogni sensore su
elaborazione dei segnali ogni bus
Controllo Strumenti • Analisi ed elaborazione del
• Controllo Strumenti
segnale avanzate
• Automazione
Automazione dei dei sistemi
sistemi di di • Visualizzazione dei dati su
test e di validazione
test e di validazione interfacce utente

Misura e controllo
Misura e controllo industriale personalizzate
industriale
• Registrazione dei dati e
• Progettazione
Progettazione di sistemi
di sistemi generazione di report
embedded
embedded

• Didattica
Didattica e ricerca
e ricerca

32 / 89
Come posso utilizzare LabVIEW?
Come usare LabVIEW
Acquisizione dati ed
• Acquisizione
elaborazione dei dati ed
segnali • Automazione dei dati
elaborazione dei segnali raccolti
Controllo Strumenti • Controllo di strumenti
• Controllo Strumenti
multipli
• Automazione
Automazione dei dei sistemi
sistemi di di • Analisi e visualizzazione
test e di validazione
test e di validazione dei segnali
Misura e controllo
• Misura e controllo industriale
industriale
• Progettazione
Progettazione di sistemi
di sistemi
embedded
embedded

• Didattica
Didattica e ricerca
e ricerca

33 / 89
Come posso utilizzare LabVIEW?
Come usare LabVIEW
Acquisizione dati ed
• Acquisizione
elaborazione dei dati ed
segnali • Automazione dei processi
elaborazione dei segnali di test e validazione della
Controllo Strumenti produzione
• Controllo Strumenti
• Controllo di strumenti
• Automazione
Automazione dei dei sistemi
sistemi di di multipli
test e di validazione
test e di validazione • Analisi e visualizzazione

Misura e controllo
Misura e controllo industriale dei risultati di test con
industriale
interfacce utente
• Progettazione
Progettazione di sistemi
di sistemi personalizzate
embedded
embedded

• Didattica
Didattica e ricerca
e ricerca

34 / 89
Come posso utilizzare LabVIEW?
Come usare LabVIEW
Acquisizione dati ed • Acquisizione di misure ad alta
• Acquisizione
elaborazione dei dati ed
segnali
velocità
elaborazione dei segnali • Semplice implementazione di
Controllo Strumenti
• Controllo Strumenti controlli PID e avanzati
• Compatibilità con ogni sistema o
• Automazione
Automazione dei dei sistemi
sistemi di di PAC
test e di validazione
test e di validazione • Implementazione di
Misura e controllo meccatronica e progettazione
• Misura e controllo industriale
industriale macchine con strumenti
• Progettazione
Progettazione di sistemi
di sistemi
applicativi specifici
embedded
embedded

• Didattica
Didattica e ricerca
e ricerca

35 / 89
Come posso utilizzare LabVIEW?
Come usare LabVIEW
Acquisizione dati ed
• Acquisizione
elaborazione dei dati ed
segnali • Riutilizzo del codice ANSI
elaborazione dei segnali C e HDL
Controllo Strumenti • Integrazione di hardware
• Controllo Strumenti
off-the-shelf
• Automazione
Automazione dei dei sistemi
sistemi di di • Prototipazione con la
test e di validazione
test e di validazione tecnologia FPGA
Misura e controllo
• Misura e controllo industriale
industriale • Accesso a strumenti
specializzati per diversi
• Progettazione
Progettazione di sistemi
di sistemi settori come la robotica e il
embedded
embedded
settore medico
• Didattica
Didattica e ricerca
e ricerca

36 / 89
Come posso utilizzare LabVIEW?
Come usare LabVIEW
Acquisizione dati ed
• Acquisizione
elaborazione dei dati ed
segnali • Ambiente didattico
elaborazione dei segnali interattivo e pratico
Controllo Strumenti • Progettazione di algoritmi
• Controllo Strumenti
con i dati reali
• Automazione
Automazione dei dei sistemi
sistemi di di • Migliori prestazioni delle
test e di validazione
test e di validazione applicazioni grazie

Misura e controllo
Misura e controllo industriale all'elaborazione multicore
industriale
• Progettazione
Progettazione di sistemi
di sistemi
embedded
embedded

• Didattica
Didattica e ricerca
e ricerca

37 / 89
Lezione 1

ESPLORIAMO LabVIEW

38 / 89
39 / 89
Strumento virtuale (VI)

Virtual Instrument (VI) Un codice LabVIEW

L’aspetto e le funzionalità dei VI imitano gli strumenti


reali come oscilloscopi e multimetri digitali.

40 / 89
Parti di un VI – Pannello frontale

Pannello frontale Interfaccia utente del VI

Il pannello frontale viene


realizzato con controlli (ingressi)
e indicatori (uscite)

41 / 89
Parti di un VI – Diagramma a blocchi

Diagramma a blocchi Contiene il codice grafico sorgente

Gli elementi del pannello frontale


compaiono come terminali nel
diagramma a blocchi

42 / 89
Parti di un VI – Icona/Pannello delle
connessioni
Icona Rappresentazione grafica di un VI

Pannello delle Mappa degli ingressi e uscite di un


connessioni VI

Icone e pannello delle connessioni sono necessarie per


usare un VI come subVI
• Il subVI è un VI dentro un VI
• Analogo a una funzione in un linguaggio di
programmazione testuale

43 / 89
Progetto

Il progetto LabVIEW è usato per:


 Raggruppare I file LabVIEW e non-LabVIEW
 Creare eseguibili e distribuzioni
 Replicare e eseguire applicazioni su target molteplici

44 / 89
Avviamo LabVIEW
DEMO
Risorse nella finestra
del Getting Started e
come iniziare un VI
partendo dalla finestra
New..

45 / 89
Lezione 2

PANNELLO FRONTALE

46 / 89
Interfaccia grafica utente
Pannello frontale

47 / 89
Temi personalizzati
Pannello frontale

48 / 89
Lezione 3

DIAGRAMMA A BLOCCHI

49 / 89
Diagramma a blocchi

Il diagramma a blocchi
contiene i seguenti
elementi:
 Terminali
 SubVI
 Funzioni
 Costanti
 Strutture
 Fili

50 / 89
Terminali
Diagramma a blocchi
• I terminali sono:
 La rappresentazione nel diagramma a blocchi di controlli e
indicatori del pannello frontale
 Porte di ingresso/uscita per lo scambio di informazioni tra pannello
frontale e diagramma a blocchi
 L’analogo di parametri e costanti nei linguaggi di programmazione
testuale
• Rappresentazione come ICONA o come TERMINALE

51 / 89
Nodi
Diagramma a blocchi
• Elementi del diagramma a blocchi che hanno ingressi e/o
uscite ed eseguono operazioni quando il VI è in esecuzione
• Analoghi a dichiarazioni, operatori, funzioni e subroutin nei
linguaggi di programmazione testuale
• I nodi possono essere funzioni, subVI, o strutture

Nodi
Nodos

52 / 89
Nodo Funzioni
Diagramma a blocchi
• Operatori fondamentali in LabVIEW
• Non hanno pannello frontale o diagramma a blocchi ma
hanno il terminale delle connessioni
• Un doppio click sulle funzioni seleziona soltanto la funzione
– non la apre come per i VI
• Hanno una icona con sfondo giallo pallido

53 / 89
Nodo SubVI
Diagramma a blocchi
• SubVI: VI realizzati per essere usati internamente ad un
altro VI
• Qualunque VI può essere usato come subVI
• Un doppioclick sul subVI apre il pannello frontale e il
diagramma a blocchi del subVI
 L’angolo in alto a destra del pannello frontale e del diagramma a
blocchi visualizza l’icona del VI corrente
 E’ la stessa icona che compare quando inserisci il VI nel
diagramma a blocchi come subVI

54 / 89
Nodo SubVI Express
Diagramma a blocchi
• Gli Express VI sono un tipo speciale di subVI
 Richiedono collegamenti minimi perchè configurabili attraverso
finestre di dialogo
 La configurazione è salvata come subVI
• Le icone degli Express VI appaiono nel diagramma a
blocchi contornate da sfondo blu

55 / 89
Fili
Diagramma a blocchi
• Trasportano i dati tra gli oggetti del diagramma a blocchi
• Il tipo di dato è rappresentato con fili di colore, stile e
spessore diversi
• Un filo rotto appare come una linea
nera e tratteggiata con una X rossa
nel mezzo

Numerico DBL Numerico Intero Stringa


Scalare
1D Array
2D Array

56 / 89
Trucco – allineamento dei nodi
Diagramma a blocchi
Il pulsante Clean Up Diagram riarrangia fili e oggetti per
aumentare la leggibilità del codice
1. Seleziona una sezione del diagramma a blocchi
2. Clicka il pulsante Clean Up Diagram nella barra degli strumenti

57 / 89
Lezione 4

PRINCIPI DI PROGRAMMAZIONE

58 / 89
Tanto complesso quanto necessiti
Principi di programmazione
Facilità di utilizzo Applicazione a
Efficienza nello funzionalità
sviluppo fissa

Express API
produttive
(astratte)

API di
basso C/C++
livello VHDL

Rendimento
Flessibilità

59 / 89
Express VI Express
Principi di programmazione
• Veloce ed intuitivo, ma con limitazioni
• Simile ad altri strumenti dalla funzionalità prefissata,
configurabili ma non programmabili

60 / 89
Creazione di un semplice VI – “Express VI”
DEMO

61 / 89
API produttive (astratte) API
produttive
Principi di programmazione (astratte)

• Alto livello di personalizzazione


• Richiedono un certo livello di esperienza ma astraggono molte
complessità della programmazione

62 / 89
API di basso livello API di
basso
Principi di programmazione livello

• Potenti, ma richiedono esperienza di programmazione e


nell’utilizzo dell’applicazione, nonchè tempo di sviluppo
• Simili a C e agli altri linguaggi di programmazione

63 / 89
Creazione di un semplice VI – “API”
DEMO

64 / 89
Lezione 4

DOCUMENTAZIONE E DEBUG

65 / 89
Documentazione
Documentazione e debug

• Oggetti con etichetta


• Commenti in linea
• Icone distinte
• Descrizione e suggerimenti
• HTML Print-Out
• Copertura dei requisiti

66 / 89
Debug semantico real time
Documentazione e debug

67 / 89
Assistenza di programmazione
Documentazione e debug

Traccia di esecuzione

Allineamento del
diagramma a blocchi

Help contestuale

68 / 89
Tecniche di debugging
Documentazione e debug
• Lo strumento SONDA permette di osservare i valori dei dati intermedi
e di verificare I valori di uscitadi VI e funzioni, soprattutto su
operazioni di I/O
• Il pulsante MANTIENI L?ULTIMO VALORE DEL FILO mantiene i
valori dei fili, utile per poterli “sondare”al termine dell’esecuzione del
VI

69 / 89
Getting Started - Debug
DEMO

70 / 89
Lezione 5

INTERFACCIAMENTO
ALL’HARDWARE

71 / 89
Controllo strumenti
DEMO
ARGOMENTI
• Driver per controllo
strumentazione
• Finding Instrument
Drivers
• Trasferimento di dati
a Microsoft Excel

72 / 89
Riproduzione di codice su target remoti
DEMO

Graphical System Design Platform

Desktop Real-Time FPGA Microprocessor/DSP Vision Mobile Touchpanel WSN

Differenti moduli di accesso all‘hardware


Hardware

/ 89
Perchè provare LabVIEW
Programmazione più veloce
con blocchi di funzione grafici
drag-and-drop

Target multipli inclusi chip


FPGA
e sistemi operativi real-time

Connettività con ogni tipo di


hardware grazie alle librerie
Integrate, agli instrument driver e
ai più diffusi protocolli di
comunicazione

Programmazione multicore
con parallelismo intrinseco
e multithreading

74 / 89
Perchè provare labVIEW
Interfaccia utente professionale
con controlli integrati, grafici e
strumenti di visualizzazione 3D

Analisi avanzate con migliaia


di funzioni specifiche

Approcci multipli di
presentazione
per includere simulazioni,
diagrammi di
stato e file .m custom

Formazione e servizi
Risorse tecniche e supporto
Community online con oltre
110,000 utenti LabVIEW

75 / 89
RISORSE

76 / 89
Cos’è LabVIEW
Risorse

77 / 89
Come posso utilizzare LabVIEW
Risorse

78 / 89
Novità di LabVIEW2010
Risorse

79 / 89
LabVIEW – oltre al software
Risorse

80 / 89
Percorsi formativi su LabVIEW
Formazione

Obiettivi:
 Accelerare l’apprendimento
 Ridurre i tempi di sviluppo e mantenimento delle applicazioni
 Applicazioni performanti, scalabili e mantenibili
 Validare le competenze e standardizzare i metodi di sviluppo

81 / 89
Formati di fruizione
Formazione
Good Better Best
Autoapprendimento Corsi On-line Corsi in Aula Corsi On-Site

• Manuali e CD kit • Formazione con istruttore live • Formazione con istruttore in aula • Istruttore presso la vostra sede
• Formazione secondo i propri • 4 ore al giorno • 8 ore al giorno • Formazione rivolta a team in
ritmi • Azzeramento delle spese di • Tempi brevi d’apprendimento azienda
• Scadenze non imminenti trasferta • Utilizzo di postazioni attrezzate • Piani formativi personalizzati
• Utilizzo di postazioni remote • Lontano dalle distrazioni • Date e durata concordate
attrezzate quotidiane • Azzeramento delle spese di
• Possibilità di rivedere la trasferta
registrazione del corso • Attrezzature didattiche fornite da
NI
• Test di valutazione

82 / 89
Dove trovare le informazioni
Formazione

ni.com/training/i
• Calendario corsi e sedi di formazione
• Agende dettagliate dei corsi
• Soluzioni formative convenienti
• Quiz per valutare le proprie competenze
• Informazioni sul programma di certificazione

Contattati:

Telefono: +39 02 41309217


E-mail: italy.service@ni.com

83 / 89
NIDAYS
Forum Tecnologico sulla Progettazione Grafica di Sistemi

• 23 febbraio 2011
NH Milanofiori
Strada 2a, Milanofiori
Loc. Assago. 20090 Milano
• 1000 mq di area espositiva con oltre 25
espositori
• Energy Summit 2011
• Sessioni tecniche parallele
• Best Application 2010
• Certificazione CLAD ad un prezzo speciale
• Special VP Guest dalla corporate di NI

84 / 89
Sfruttare il Network
Risorse
+300 add-on di terze parti
+70.000 utenti online
+400 Solution partner
+100 user group registrati
+35 corsi di formazione
+500.000 bambini tramite LEGO
Community Collaboration

Connectivity
+9000 instrument drivers
+1000 sensori intelligenti
+1000 dispositivi PAC di terze parti

85 / 89
Codice ed esempi
Risorse

Un solo indirizzo per trovare tutto il codice ni.com


• EPD Example Programs
• Aggiornamenti dei driver
• Esempi della community
• Esempi per IP FPGA
• Esempi di codice testuale

ni.com/code

86 / 89
Risorse
• 14 realizzate in LabVIEW 2010
• 1276 idee – 14,158 voti
VI Snippet Version Included inProjects Receive Individual
Image Section
 Simplified Connector Pane  View Cluster Constant as
Editing Icon
Boolean Constant Redesign Adding Labels to Wires
to Save Space  Merge Error Node Grows to
 Include Radix for String Fit Inputs
Constant Replace Object with Quick
Close All VIs in a Project Drop
 Local Variable Redesign to  Configurable Hot Keys for ni.com/ideas
Save Space Quick Drop

87 / 89
Network dei LabVIEW tools

• +50 Add-On • Architetture di codice


• Librerie per riusare il codice • Connettori a SW di terze parti
• Strumenti per software engineering • IP FPGA
• Controlli per UI
ni.com/labviewtools
88 / 89
alessandro.plantamura@ni.com

GRAZIE PER L’ATTENZIONE

89 / 89