LabVIEW

linguaggio di programmazione

LabVIEW (abbreviazione di Laboratory Virtual Instrumentation Engineering Workbench) è l'ambiente di sviluppo integrato per il linguaggio di programmazione visuale di National Instruments. Tale linguaggio grafico viene chiamato Linguaggio G.

LabVIEW
software
GenereIntegrated development environment
SviluppatoreNational Instruments
Data prima versione1986
Ultima versione2023 Q3 (18 luglio 2023[1])
Sistema operativoMicrosoft Windows
macOS
Linux
LinguaggioC
C++
LicenzaProprietario
(licenza non libera)
LinguaCinese (semplificato), coreano, francese, giapponese, inglese, tedesco
Sito webwww.ni.com/labview/i/

Realizzato originariamente per Apple Macintosh nel 1986, LabVIEW viene principalmente utilizzato per programmi di acquisizione e analisi dati, controllo di processi, generazione di rapporti, o più generalmente per tutto ciò che concerne l'automazione industriale, su diverse piattaforme come Windows, Linux, macOS e controllori National Instruments.

Programmazione G modifica

Il linguaggio di programmazione usato in LabVIEW si distingue dai linguaggi tradizionali perché la sua sintassi non è scritta ma grafica, e per questa ragione viene chiamato G-Language (Graphic Language). Un programma o sottoprogramma G, denominato VI (Virtual Instrument), non esiste sotto forma di testo, ma può essere salvato solo come un file binario che può essere aperto e compilato solo da LabVIEW.

La definizione di strutture dati ed algoritmi avviene con icone e altri oggetti grafici, ognuno dei quali incapsula funzioni diverse, uniti da linee di collegamento (wire), in modo da formare una sorta di diagramma di flusso. Questo tipo di linguaggio viene definito dataflow (flusso di dati) in quanto la sequenza di esecuzione è definita e rappresentata dal flusso dei dati stessi attraverso i fili monodirezionali che collegano i blocchi funzionali. Poiché i dati possono anche scorrere in parallelo attraverso blocchi e fili non consecutivi, il linguaggio può realizzare spontaneamente il multithreading senza bisogno di esplicita gestione da parte del programmatore.

Collegamento con l'hardware modifica

Interessante è la modalità di realizzazione del software, che si limita spesso al semplice collegamento di blocchi già pronti, grazie alla vasta libreria di funzioni predefinite e driver per la gestione dell'hardware. LabVIEW è predisposto per la comunicazione con l'hardware di tipo IEEE 488, VXI, PXI, RS-232, RS-485 e dispositivi DAQ plug-in. I programmi LabVIEW sono compatibili con molti modelli di strumenti programmabili e schede di acquisizione.

Dettagli dei VI modifica

 
Un semplice VI che calcola la lunghezza dell'ipotenusa di un triangolo rettangolo. Sono visibili il pannello frontale (in alto) e il diagramma a blocchi (in basso)

Nell'ambiente di sviluppo, i VI sono composti da tre parti principali:

  • il pannello frontale
  • lo schema a blocchi
  • il riquadro connettori

Pannello frontale modifica

Il pannello frontale è l'interfaccia utente del VI. Si realizza con controlli e indicatori, che costituiscono i terminali interattivi d'ingresso e d'uscita, rispettivamente. Essi sono ben più numerosi e complessi dei widget normalmente forniti dal sistema operativo. I controlli sono matrici, manopole, potenziometri, pulsanti, quadranti e molti altri; simulano i dispositivi d'ingresso degli strumenti e forniscono dati allo schema a blocchi del VI. Gli indicatori sono grafici, tabelle, LED, termometri e molti altri; simulano i dispositivi d'uscita degli strumenti e visualizzano i dati che lo schema a blocchi acquisisce o genera.

Schema a blocchi modifica

Lo schema a blocchi è il diagramma di flusso che rappresenta il codice sorgente, in formato grafico. Gli oggetti del pannello frontale appaiono come terminali di ingresso o uscita nello schema a blocchi. Gli oggetti dello schema a blocchi comprendono:

Le funzioni sono esse stesse dei VI, anche se non hanno un loro pannello frontale e un loro schema a blocchi. Possono avere un numero indefinito di ingressi e di uscite come ogni VI.

Le strutture eseguono il controllo di flusso di base. Ad esempio il ciclo FOR è rappresentato da un rettangolo che ripete N volte la porzione di schema a blocchi che viene inserita al suo interno.

I fili di collegamento possono trasportare teoricamente qualunque mole di dati di qualunque tipo, anche aggregati (bundle) definiti dal programmatore. I fili possono essere di diverso spessore e colore per permettere una facile identificazione dei dati che vi scorrono: ad esempio i numeri interi scorrono su fili blu, i numeri decimali su fili arancioni le stringhe su fili rosa.

Lo schema a blocchi può essere reso visibile anche durante l'esecuzione, cosa molto utile in fase di debug, in quanto esiste la possibilità di visualizzare con un'animazione al rallentatore il movimento dei dati lungo i fili e il loro valore momentaneo.

Riquadro connettori modifica

Ogni VI può essere a sua volta utilizzato come subVI (o sottoVI) e comparire all'interno dello schema a blocchi di altri VI come una qualsiasi funzione, e come tale può avere ingressi e uscite a cui collegare le linee di flusso. Il riquadro connettori serve appunto a definire qual è l'aspetto del VI quando appare come subVI in uno schema a blocchi di un VI più ampio: che facciata ha l'icona, ma soprattutto come e dove vanno collegate le linee per permettere il passaggio dei dati. In genere, con pochi click, ogni controllo può essere associato a un ingresso e ogni indicatore può essere associato a un'uscita.

Eseguibili modifica

A partire dai VI si possono anche creare eseguibili a sé stanti e librerie condivise (DLL), perché LabVIEW è un vero compilatore a 32 bit. Per utilizzare tali eseguibili e DLL non occorre un'installazione di LabVIEW, ma è necessario che sul computer di destinazione sia installato almeno il run-time engine di LabVIEW, peraltro distribuito gratuitamente.

Storia modifica

Il progetto LabVIEW nasce nel 1983 dalla necessità della National Instruments di disporre di un software di programmazione grafica, con il quale testare rapidamente gli apparati hardware prodotti da tale industria statunitense.

Già nel 1986 è resa pubblica la versione 1 del software compatibile con i sistemi Macintosh. Nel gennaio del 1990 viene pubblicata la versione 2, le migliorie sul software rendono la velocità di esecuzione del VI paragonabile ai programmi compilati in Ansi C. Il mese successivo in virtù dell'innovatività dell'approccio grafico alla programmazione, viene pubblicato il brevetto dal US Patent Office. Infine nel settembre 1992 ne viene sviluppata una versione multipiattaforma, cioè per Microsoft Windows, Mac OS e SunOS. In seguito venne supportato anche Linux.

La versione 8.0, pubblicata nel 2005, introduce per la prima volta anche il supporto per la programmazione a oggetti. Il 4 agosto 2009 è stata pubblicata la versione LabVIEW 2009, a 32 o 64-bit, che succede alla versione 8.6. L'ultima versione distribuita è LabVIEW 2020.

Versione Numero di build Data
Inizio del progetto aprile 1983
LabVIEW 1.0 (per Macintosh) ottobre 1986
LabVIEW 2.0 gennaio 1990
LabVIEW 2.5 (prima versione per Sun & Windows) agosto 1992
LabVIEW 3.0 (Multiplatform) luglio 1993
LabVIEW 3.0.1 (prima versione per Windows NT) 1994
LabVIEW 3.1 1994
LabVIEW 3.1.1 (prima versione con abilità di "application builder") 1995
LabVIEW 4.0 aprile 1996
LabVIEW 4.1 1997
LabVIEW 5.0 febbraio 1998
LabVIEW RT (Real Time) maggio 1999
LabVIEW 6.0 (6i) 6.0.0.4005 26 luglio 2000
LabVIEW 6.1 6.1.0.4004 12 aprile 2001
LabVIEW 7.0 (Express) 7.0.0.4000 aprile 2003
Prima versione del LabVIEW PDA module maggio 2003
Prima versione del LabVIEW FPGA module giugno 2003
LabVIEW 7.1 7.1.0.4000 2004
Prima versione del LabVIEW Embedded module maggio 2005
LabVIEW 8.0 8.0.0.4005 settembre 2005
LabVIEW 8.20 (programmazione object-oriented nativa) agosto 2006
LabVIEW 8.2.1 8.2.1.4002 21 febbraio 2007
LabVIEW 8.5 8.5.0.4002 2007
LabVIEW 8.6 8.6.0.4001 24 luglio 2008
LabVIEW 8.6.1 8.6.0.4001 10 dicembre 2008
LabVIEW 2009 (32 e 64-bit) 9.0.0.4022 4 agosto 2009
LabVIEW 2009 SP1 9.0.1.4011 8 gennaio 2010
LabVIEW 2010 10.0.0.4032 4 agosto 2010
LabVIEW 2010 f2 10.0.0.4033 16 settembre 2010
LabVIEW 2010 SP1 10.0.1.4004 17 maggio 2011
LabVIEW for LEGO MINDSTORMS (2010 SP1 con qualche modulo) agosto 2011
LabVIEW 2011 11.0.0.4029 22 giugno 2011
LabVIEW 2011 SP1 11.0.1.4015 1º marzo 2012
LabVIEW 2012 12.0.0.4029 agosto 2012
LabVIEW 2012 SP1 12.0.1.4013 dicembre 2012
LabVIEW 2013 13.0.0.4047 agosto 2013
LabVIEW 2013 SP1 13.0.1.4017 marzo 2014[2]
LabVIEW 2014 14.0 agosto 2014
LabVIEW 2014 SP1 14.0.1.4008 marzo 2015
LabVIEW 2015 15.0f2 agosto 2015
LabVIEW 2015 SP1 15.0.1f1 marzo 2016
LabVIEW 2016 16.0.0 agosto 2016
LabVIEW 2017 17.0f1 maggio 2017
LabVIEW 2017 SP1 17.0.1f1 gennaio 2018[3]
LabVIEW 2018 18.0 maggio 2018
LabVIEW 2018 SP1 18.0.1 dicembre 2018
LabVIEW 2019 19.0 15 maggio 2019
LabVIEW 2019 SP1 19.0.1 28 ottobre 2019
LabVIEW 2020 20.0 15 maggio 2020
LabVIEW 2020 SP1 20.0.1 8 gennaio 2021
LabVIEW 2021 13 luglio 2021
LabVIEW 2021 SP1 16 febbraio 2022
LabVIEW 2022 Q3 23 luglio 2022

Note modifica

  1. ^ LabVIEW Download, su ni.com.
  2. ^ What's New in NI Developer Suite - National Instruments, su ni.com. URL consultato il 23 maggio 2019 (archiviato dall'url originale il 31 marzo 2014).
  3. ^ LabVIEW 2017 SP1 Patch Details - National Instruments, su ni.com.

Altri progetti modifica

Collegamenti esterni modifica

  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica