LabVIEW (Laboratory Virtual Instrumentation Engineering Workbench)
Che cos'è LabVIEW?
LabVIEW è un ambiente di sviluppo di National Instruments, esistente dal 1986, sviluppato per la creazione di applicazioni per l'acquisizione, l'elaborazione e la visualizzazione di dati e segnali. I principali campi di applicazione sono la tecnica di misura, di regolazione, di collaudo, di controllo e di automazione.
In questi ambiti LabVIEW si è oggi affermato come strumento di sviluppo preferito nei più diversi settori della scienza e della tecnica. Ciò si deve da un lato al progressivo ampliamento delle funzionalità, dall'altro al fatto che con il linguaggio di programmazione grafico interno di LabVIEW idee e soluzioni si possono realizzare rapidamente, senza perdere flessibilità e prestazioni.
L'ambiente di sviluppo LabVIEW
Linguaggio di programmazione G
Nello sviluppo con LabVIEW si utilizza il linguaggio di programmazione grafico G, orientato al flusso di dati. Questo linguaggio consente all'utente di collegare in modo molto semplice, nel cosiddetto diagramma a blocchi che contiene la logica dell'applicazione, blocchi funzionali grafici predefiniti tramite linee di dati, ottenendo così la funzionalità desiderata.
L'orientamento al flusso di dati di G consente inoltre di realizzare facilmente la programmazione parallela, poiché le sezioni di programma indipendenti dai dati vengono eseguite automaticamente in più thread.
Librerie
LabVIEW mette a disposizione numerose librerie con le funzionalità più diverse. Oltre alle consuete funzionalità di base di un linguaggio di programmazione, vengono offerti anche blocchi funzionali e algoritmi speciali, adattati al campo di applicazione. Sono inclusi elementi di comando e di visualizzazione interattivi e predefiniti, come ad esempio diagrammi, grafici e pulsanti, che possono essere utilizzati per rappresentare dati e segnali sull'interfaccia utente (pannello frontale).
Inoltre, per i dispositivi supportati vengono forniti i driver hardware. Ciò consente di utilizzare in modo coerente un unico strumento di sviluppo per realizzare la comunicazione con il dispositivo e la successiva elaborazione e visualizzazione dei dati. Qui si vede il potenziale di uno sviluppo efficiente con LabVIEW.
I moduli già scritti in C# o C/C++ possono essere integrati tramite .NET, ActiveX, DLL e XML.
Ambiente di sviluppo integrato
L'ambiente di sviluppo integrato offre numerose opzioni di configurazione e strumenti che consentono uno sviluppo efficiente. Anche qui, per la gestione degli errori, si possono utilizzare punti di interruzione e sonde dati per esaminare nodi funzionali selezionati e il contenuto dei dati degli oggetti.
Per la compilazione dei diagrammi a blocchi si utilizza il compilatore integrato. Questo traduce i diagrammi a blocchi direttamente in codice macchina, per cui anche le applicazioni create in LabVIEW offrono prestazioni molto elevate.
Sviluppo con LabVIEW
Anche in LabVIEW valgono i consueti cicli di sviluppo software. Tuttavia, sia nell'analisi dei requisiti sia nella progettazione del software occorre tenere conto dell'orientamento al flusso di dati di LabVIEW. È quindi più pratico analizzare il sistema mediante diagrammi di stato, la cui rappresentazione del problema astratto consente una realizzazione semplice e rapida con il linguaggio di programmazione grafico G.
Per la progettazione del sistema, a seconda del problema, National Instruments raccomanda design pattern che consentono di realizzare un'applicazione LabVIEW scalabile, modulare e facilmente estendibile. Pattern comuni sono Master/Slave, Producer/Consumer, Event Driven User Interface, ma anche pattern combinati più complessi, come Queued State Machine - Event Driven Producer/Consumer (QSM-PC). Qui occorre scegliere il pattern più adatto in funzione delle funzionalità e delle condizioni quadro dell'applicazione.
Vantaggi
- La programmazione grafica non richiede conoscenze di programmazione approfondite e riduce i tempi di apprendimento
- I driver hardware e le interfacce dei dispositivi forniti facilitano il lavoro diretto con i dispositivi collegati in un unico ambiente di sviluppo
- Possibilità di simulare hardware/dispositivi
- Sono disponibili ampie librerie, studiate appositamente per determinati campi di applicazione, ad es. Vision & Motion, Automation, ecc.
- Ampia documentazione delle funzioni
- Sviluppo rapido ed efficiente, e tuttavia flessibile, riutilizzabile e performante
- Possibilità di realizzare prototipi molto rapidamente
Svantaggi
- L'implementazione di algoritmi complessi in LabVIEW è molto macchinosa, se non impossibile. In questo caso serve un linguaggio di programmazione testuale da integrare in LabVIEW. Quest'ultima operazione può rivelarsi molto difficile
- Il modo di ragionare della programmazione grafica non è intuitivo
- Il fabbisogno di memoria di LabVIEW è molto elevato
- I diagrammi a blocchi diventano rapidamente poco chiari
- È necessario un ambiente di runtime sul computer di destinazione
- I progetti possono essere aperti solo con la versione con cui sono stati sviluppati
Estendiamo LabVIEW per Lei e colleghiamo il Suo hardware a LabVIEW.
Ulteriori informazioni su sistemi di programmazione grafica e simulazioni.
