LabVIEW: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Riga 21:
'''LabVIEW''' (abbreviazione di '''Lab'''oratory '''V'''irtual '''I'''nstrumentation '''E'''ngineering '''W'''orkbench) è l'[[ambiente di sviluppo integrato]] per il [[linguaggio di programmazione]] visuale di [[National Instruments]]. Tale linguaggio grafico viene chiamato ''Linguaggio G''.
 
OriginalmenteRealizzato realizzatooriginariamente per [[Apple Macintosh]] nel [[1986]], LabVIEW viene utilizzato per principalmente perprogrammi di acquisizione e analisi dati, controllo di processi, generazione di rapporti, o più generalmente per tutto ciò che concerne l'[[Automazione|automazione industriale]], su diverse piattaforme come [[Microsoft Windows|Windows]], [[Linux]], [[Mac OS]], e [[Programmable logic controller|controllori]] National Instruments.
 
== Programmazione G ==
Il linguaggio di programmazione usato in LabVIEW si distingue dai linguaggi tradizionali perché la sua sintassi non è scritta ma grafica, e per questa ragione battezzatoviene chiamato G-Language (Graphic Language). Un programma o sottoprogramma G, denominato '''VI''' (Virtual Instrument), non esiste sotto forma di [[file di testo|testo]], ma può essere salvato solo come un [[file binario]], visualizzabileche può essere aperto e compilabilecompilato solo da LabVIEW.
 
La definizione di strutture dati ed [[algoritmo|algoritmi]] avviene con [[icona (informatica)|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]]. TaleQuesto 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 realizzapuò realizzare spontaneamente il [[multithreading]] senza bisogno di esplicita gestione da parte del programmatore.
 
== Successo ==
{{P|Il contenuto e la presenza stessa di questa sezione sono soggettivi e discutibili|informatica|novembre 2011}}
La semplicità didella programmazione (che è abbastanza intuitiva in quanto modellata solo su un diagramma di flusso), la semplicità di utilizzo (l'utente finale dispone di uno strumento virtuale disegnatovisualizzato sullo schermo del computer) e la grande versatilità, hanno reso LabVIEW molto impiegato e diffuso nell'ambito dell'acquisizione dei dati e nel loro controllo nei processi industriali, nonché nel campo della ricerca scientifica (tramite LabView sono gestiti i sistemi DAQ degli acceleratori di particelle sono gestiti con programmi realizzati in LabVIEW).
 
È determinante anche la velocità 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 è completamente integrato per la comunicazione con l'hardware di tipo [[IEEE 488]], [[VXI]], [[PXI]], [[RS-232]], [[RS-485]] e dispositivi [[Acquisizione dati|DAQ]] [[plugin (informatica)|plug-in]]. I programmi LabVIEW sono pienamente compatibili con tutti i modelli dei più importanti costruttori di strumenti programmabili e schede di acquisizione.
Riga 36:
== Dettagli dei VI ==
[[File:Esempio LabVIEW.png|frame|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 constanosono dicomposti da tre componentiparti principali:
* il pannello frontale
* lo schema a blocchi
Riga 42:
 
=== Pannello frontale ===
Il pannello frontale è l'[[GUI|interfaccia utente]] del VI. Si realizza con ''controlli'' e ''indicatori'', che costituiscono i terminali interattivi d'ingresso e d'uscita, rispettivamente. SonoEssi sono ben più numerosi e complessi dei [[widget]] normalmente forniti dal sistema operativo.
I controlli sono [[matrice|matrici]], manopole, [[potenziometro|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]], [[termometro|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 ===
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:
* terminali
* [[funzione (informatica)|funzioni]]
Riga 56:
* commenti testuali
 
Le funzioni sono chiamate 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 [[iterazione|ciclo FOR]] è rappresentato da un contenitore quadrato,rettangolo che ripete N volte la porzione di schema a blocchi che siviene trovainserita al suo interno.
 
I fili di collegamento possono trasportare teoricamente qualunque mole di dati di qualunque [[tipo di dato|tipo]], anche [[Struttura dati|aggregati]] (''bundle'') definiti dal programmatore. IlI colorefili epossono loessere spessoredi deldiverso filospessore cambianoe di conseguenzacolore per permetternepermettere una facile identificazione. Addei dati che vi scorrono: ad esempio glii [[numero intero|numeri interi]] scorrono su fili blu, ei [[numero decimale|numeri decimali]] su fili arancioni le [[Stringa (informatica)|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 aesiste richiestala sipossibilità puòdi visualizzare con un'animazione al rallentatore il movimento dei dati lungo i fili e il loro valore momentaneo.
 
=== Riquadro connettori ===
Ogni VI può essere a sua volta utilizzato come ''subVI'' (o ''sottoVI'') e comparire all'interno dello schema a blocchi di altri VI, proprio 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 generalegenere, con pochi click, ogni controllo può essere associato a un ingresso e ogni indicatore può essere associato a un'uscita.
 
=== Eseguibili ===
A partire dai VI si possono anche creare [[file eseguibile|eseguibili]] a sé stanti e librerie condivise ([[DLL]]), perché LabVIEW è un vero [[compilatore]] a [[32 bit]]. Per usareutilizzare 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 ==
Il progetto LabVIEW nasce nel [[1983]] dalla necessità della National Instruments di disporre di un software graficodi 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 [[C (linguaggio)|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]].