Sviluppato da | Strumenti nazionali |
---|---|
Prima versione | 1986 |
Ultima versione | 2019 (Maggio 2019) |
Sistema operativo | Microsoft Windows , macOS e Linux |
Ambiente | Windows , Mac OS , Linux |
Le lingue | Francese , inglese , tedesco , giapponese |
genere | Laboratorio di ingegneria del software , Catena di acquisizione , Elaborazione del segnale , Sistema integrato |
Politica di distribuzione | Venduto in commercio |
Licenza | Proprietario |
Sito web | www.ni.com/labview |
LabVIEW (una contrazione di Laboratory Virtual Instrument Engineering Workbench) è il cuore di una piattaforma di progettazione di sistemi di misura e controllo, basata su un ambiente di sviluppo grafico di National Instruments .
Il linguaggio grafico utilizzato in questa piattaforma si chiama "G". Creato originariamente su Apple Macintosh nel 1986, LabVIEW viene utilizzato principalmente per la misurazione mediante acquisizione dati , per il controllo dello strumento e per l'automazione industriale. Lo sviluppo della piattaforma è in esecuzione diversi sistemi operativi come Microsoft Windows , Linux e Mac OS X . LabVIEW può generare codice su questi sistemi operativi ma anche su piattaforme real - time , sistemi embedded o componenti FPGA riprogrammabili . Dal 2009, LabVIEW si è evoluto al ritmo di una delle principali versioni vintage all'anno.
I tradizionali campi di applicazione di LabVIEW sono controllo / comando, misura, strumentazione e test automatizzati da PC ( acquisizione dati , controllo-comando , controllo di strumenti di misura, dispositivi sperimentali, banchi prova). Questa vocazione è racchiusa nelle librerie di funzioni specializzate ( GPIB , VXI , PXI , schede di acquisizione DAQ, elaborazione dati, ecc.), Ma anche dalle particolarità del linguaggio G (parallelismo insito nell'esecuzione tramite flusso dati) e dell'ambiente di sviluppo ( driver di dispositivo standard, procedure guidate di installazione hardware).
Il concetto di strumento virtuale che ha dato il nome a LabVIEW (Laboratory Virtual Instrument Engineering Workbench), si manifesta con la permanenza di un'interfaccia grafica per ogni modulo (funzione) di un programma. I controlli e gli indicatori su questo pannello frontale sono l'interfaccia attraverso la quale il programma interagisce con l'utente (lettura comandi e parametri, visualizzazione dei risultati). Le funzioni controllo-comando di quadri o strumenti costituiscono l'interfaccia attraverso la quale il programma interagisce con l'assieme.
Un programma LabVIEW automatizza quindi un assembly associando più dispositivi programmabili, e combina l'accesso alle funzionalità di questo assembly in un'unica interfaccia utente, un vero e proprio pannello frontale di uno strumento virtuale.
Il linguaggio di programmazione utilizzato in LabVIEW, denominato G, funziona in base al flusso di dati. L'esecuzione di un codice è determinata da uno schema grafico, il diagramma, che è il codice sorgente . Il programmatore collega diverse funzioni come icone nello schema tramite fili disegnati tra le terminazioni dei blocchi di icone. Ogni thread propaga le variabili del codice e ogni nodo viene eseguito non appena sono disponibili tutti gli input di una funzione icona.
La colorazione della sintassi , nata come LabVIEW a metà degli anni '80, è specificata nell'editor diagramma da elementi (spessore, pattern, simboli) e geometria (dimensione, allineamento, disposizione) che incidono fortemente sulla leggibilità, nel bene e nel male secondo la cura prestata dall'editore.
Questo modo di programmare offre una capacità intrinseca di descrivere processi indipendenti e quindi LabVIEW consente l'esecuzione di codice in multitasking . Sulle macchine multicore , LabVIEW distribuisce automaticamente queste attività su diversi core sfruttando al contempo le capacità multithread dei sistemi operativi.
I programmi vengono spesso eseguiti dall'ambiente di sviluppo come parte di uno sviluppo altamente iterativo . Le edizioni più complete del sistema di sviluppo offrono comunque la possibilità di creare file eseguibili o installatori di applicazioni per la distribuzione su altre macchine. Un runtime deve quindi essere installato sul sistema host insieme al file eseguibile effettivo.
Lo schema a blocchi di LabVIEW è collegato a un'interfaccia utente grafica chiamata pannello frontale. I programmi e le subroutine sotto forma di icone sono chiamati strumenti virtuali (VI) e i file sorgente salvati su disco hanno l' estensione del nome del file.VI .
Ogni VI ha tre componenti: un diagramma a blocchi che incorpora il codice grafico, un pannello frontale personalizzabile dall'utente e un pannello di permutazione , che assume l'aspetto di una piccola icona quadrata.
Associando alcuni controlli e indicatori sul pannello frontale del VI con i connettori sul suo pannello connettori, il programmatore consente a uno schema a blocchi di chiamata di scambiare variabili con il VI sotto forma di fili. Una volta che un VI è stato scritto, può così essere posizionato e richiamato nello schema a blocchi di un altro VI, dove sarà rappresentato dalla sua icona e svolgerà il ruolo di subroutine , funzione o procedura (si parla di subVI ). Come il suo nome, un'icona VI deve essere personalizzata con un disegno o un testo per rendere esplicita la sua funzione per i revisori del codice.
Il pannello frontale è costruito utilizzando oggetti chiamati controlli e indicatori. I controlli sono input utilizzati per immettere valori sullo schermo e i flag sono output utilizzati per visualizzare variabili o risultati. Gli elementi decorativi (forme, testo libero, immagini ...) possono arricchire visivamente l'interfaccia utente grafica. Questi esistono solo sulla faccia anteriore del VI. I comandi e gli indicatori, invece, compaiono sia sul pannello frontale che sullo schema ( terminale sotto forma di icona) in modo che possano essere collegati alle operazioni con cui scambiano dati.
Infine, il diagramma contiene strutture di controllo (loop, condizioni, eventi, sequenza, ecc.) Per determinare l'esecuzione o l'ordine delle operazioni come in tutti i linguaggi di programmazione. Tutti gli oggetti di comando, gli indicatori, le funzioni, le strutture sono accessibili al programmatore tramite tavolozze, menu o combinazioni di tasti da tastiera ( Quick Drop ). Le icone delle funzioni poste sullo schema diventano nodi interconnessi da fili di ingresso e di uscita. Ad esempio, la funzione di aggiunta offre due connettori di ingresso e un connettore di uscita per il risultato. Ogni subVI in un programma più grande conserva la capacità di essere eseguito indipendentemente dall'utente attraverso il suo pannello frontale.
Per il lettore, un programma in linguaggio G si presenta come un diagramma, il diagramma, che riunisce varie icone collegate da fili colorati. Ogni filo simboleggia il passaggio di dati da una sorgente da cui parte (di conseguenza), a una destinazione in cui entra (come parametro).
Gli schemi del linguaggio G hanno quindi un significato molto diverso da quello degli schemi elettronici che a volte evocano. In un diagramma a blocchi di LabVIEW, i dati non fluiscono attraverso il feed finché non vengono generati dalla sua icona sorgente. L'icona di destinazione non inizierà l'esecuzione finché tutti i suoi dati di input non saranno disponibili. Questo modello di pianificazione del flusso di dati determina l'ordine di esecuzione predefinito dei processi del programma. Una conseguenza importante di questa regola è che i processi che non si scambiano dati sono liberi di funzionare in parallelo. Questa proprietà del linguaggio G facilita lo sviluppo di applicazioni multiprocesso , particolarmente interessanti nell'ambito del controllo di sistemi reattivi (embedded o meno).
La progettazione di programmi in linguaggio G conserva un approccio essenzialmente procedurale. Combinato con l'esecuzione tramite flussi di dati, questo approccio fornisce buoni risultati nel campo della strumentazione. È anche il più intuitivo per ingegneri o ricercatori che spesso hanno più familiarità con i protocolli sperimentali che con i concetti informatici.
Il supporto per la progettazione orientata agli oggetti è stato sviluppato in modo confidenziale negli anni '90 in LabVIEW, culminando nel 1999 con la commercializzazione da parte della società svedese Endevo di un kit "GOOP", quindi supporto nativo dal 2006. (versione 8.2). Molti elementi sono gestiti da metodi e proprietà.
Il concept del progetto è apparso nell'editor dal 2005 (versione 8.0) per la configurazione, in particolare, dei nuovi target di compilazione che sono diventati accessibili in quel momento (sistemi real-time, FPGA, microprocessori).
Dal 2018 l'influenza di Python si fa sentire con la possibilità di chiamare script in questo linguaggio, quindi il supporto nativo dei concetti di set e array associativo .
La programmazione grafica di LabVIEW è popolare tra gli scienziati non informatici, che possono trascinare e rilasciare programmi e interfacce grafiche virtuali che assomigliano ai pannelli frontali di strumenti di laboratorio reali. Questo approccio di programmazione allo sviluppo è supportato da un ambiente intuitivo, ricco di documentazione ed esempi.
La mancanza di rigore, la conoscenza delle buone pratiche e le peculiarità del compilatore, tuttavia, mettono in pericolo la qualità e le prestazioni dei programmi, come con qualsiasi linguaggio di programmazione. Per realizzare algoritmi più complessi o più efficienti è decisiva una conoscenza approfondita (ad esempio sulla gestione della memoria, allocata automaticamente di default, e sul compilatore). Esistono anche strumenti di ingegneria del software per creare applicazioni LabVIEW su larga scala come un team.
Fu nel 1986 che la prima versione di LabVIEW, creata da Jeff Kodosky, fu rilasciata su Macintosh . Segue un incessante lavoro per migliorare l'ambiente di programmazione (ergonomia dell'editor, supporto di nuovi concetti, miglioramenti del compilatore), ma anche per adattarlo all'evoluzione del suo ambiente hardware (strumenti, schede di dati). collegamenti di comunicazione, obiettivi di compilazione) e software (standard per lo scambio di dati, connettività con altri software e altri linguaggi di programmazione). Dal 2009, LabVIEW si è evoluto al ritmo di una delle principali versioni vintage all'anno.
Nel 2017 National Instruments ha operato un fork strategico e sta sviluppando il suo prodotto secondo due rami: il ramo "classico" e il ramo "NXG" (NeXt Generation). LabVIEW NXG è pubblicizzato come il futuro di LabVIEW. Due anni dopo il suo rilascio, la compatibilità di LabVIEW NXG con altri prodotti software e hardware di National Instrument era ancora in ritardo rispetto a quella dell'industria tradizionale. Ma offre anche nuove funzionalità esclusive e l'azienda sta lavorando per invertire l'equilibrio di potere tra le due filiali.
Puoi estendere le funzionalità di LabVIEW aggiungendo toolkit distribuiti separatamente. L'elenco seguente fornisce un inventario non esaustivo dei suoi supplementi:
In genere non è possibile aprire un VI con una versione di LabVIEW precedente a quella utilizzata per produrlo. Tuttavia, ogni versione può salvare il codice per un numero limitato di versioni precedenti, in modo che possa essere aperto in esse.
Il codice prodotto da LabVIEW 6 può essere aperto con qualsiasi versione più recente di LabVIEW.
LabVIEW è disponibile per Windows dalla versione 2.5 (1992, Windows 3.1).
LabVIEW | Vinci 95 | Win NT | Vinci 98 | Vincimi | Vinci 2000 | Vinci XP | Vinci Vista | Vinci 7 | Vinci 8 | Vinci 10 |
---|---|---|---|---|---|---|---|---|---|---|
5.1.1 (2000) | X | X | X | - | X | - | - | - | - | - |
6.0.2 (2001) | X | X | X | - | X | - | - | - | - | - |
6.1 (2002) | X | X | X | X | X | X | - | - | - | - |
7.0 (2003) | - | X | X | X | X | X | - | - | - | - |
7.1 (2004) | - | X | - | - | X | X | - | - | - | - |
8.0.1 (2006) | - | - | - | - | X | X | - | - | - | - |
8.2 (2006) | - | - | - | - | X | X | - | - | - | - |
8.5.1 (2008) | - | - | - | - | X | X | X | - | - | - |
8.6.1 (2008) | - | - | - | - | X | X | X | - | - | - |
2009 | - | - | - | - | X | X | X | - | - | - |
2009 SP1 | - | - | - | - | X | X | X | X | - | - |
2010 | - | - | - | - | - | X | X | X | - | - |
2010 SP1 | - | - | - | - | - | X | X | X | - | - |
2011 | - | - | - | - | - | X | X | X | - | - |
2011 SP1 | - | - | - | - | - | X | X | X | - | - |
2012 | - | - | - | - | - | X | X | X | - | - |
2012 SP1 | - | - | - | - | - | X (SP3) | X | X | X | - |
2013 | - | - | - | - | - | X (SP3) | X | X | X | - |
2013 SP1 | - | - | - | - | - | X (SP3) | X | X | X | - |
2014 | - | - | - | - | - | X (SP3) | X | X | X | - |
2014 SP1 | - | - | - | - | - | X (SP3) | X | X | X | - |
2015 | - | - | - | - | - | X (SP3) | X | X | X | X |
2015 SP1 | - | - | - | - | - | X (SP3) | X | X | X (8,1) | X |
2016 | - | - | - | - | - | - | - | X | X (8,1) | X |
2017 | - | - | - | - | - | - | - | X | X (8,1) | X |
2018 | - | - | - | - | - | - | - | X | X (8,1) | X |
LabVIEW è disponibile per Linux dalla versione 5.1 (1999). Tuttavia, la sua compatibilità rimane limitata così come quella dei toolkit e in particolare dei driver hardware, che dovrebbero essere verificati caso per caso.
LabVIEW per Linux | Motore di runtime | Sviluppo dell'ambiente |
---|---|---|
2014 SP1 | Kernel Linux 2.4x, 2.6x o 3.x e libreria GNU C (glibc) versione 2.5.1 o successiva per architettura Intel x86 (32 bit); Kernel Linux 2.6x o 3.x e libreria GNU C (glibc) versione 2.5.1 o successiva per architettura Intel x86_64 (64 bit) | Red Hat Enterprise Linux Desktop + Workstation 6 o versioni successive; openSUSE 12.3 o 13.1; Scientific Linux 6 o versioni successive |
2015 SP1 | Kernel Linux 2.6x o 3.x e libreria GNU C (glibc) versione 2.11 o successiva per architettura Intel x86 (32 bit); Kernel Linux 2.6x o 3.x e libreria GNU C (glibc) versione 2.11 o successiva per architettura Intel x86_64 (64 bit) | Red Hat Enterprise Linux Desktop + Workstation 6.5 o versioni successive; openSUSE 13.2 o Leap 42.1; Scientific Linux 6.5 o versioni successive |
2016 | Kernel Linux 2.6x o 3.x e libreria GNU C (glibc) versione 2.11 o successiva per architettura Intel x86_64 | Red Hat Enterprise Linux Desktop + Workstation 6.5 o versioni successive; openSUSE 13.2 o LEAP 42.1; Scientific Linux 6.5 o versioni successive; CentOS 7 |
2017 SP1 | Kernel Linux 2.6x o 3.x e libreria GNU C (glibc) versione 2.11 o successiva per architettura Intel x86_64 | openSUSE LEAP 42.1 e 42.2; Red Hat Enterprise Linux Desktop + Workstation 6.xe 7.x; Scientific Linux 6.x; CentOS 7 |
2018 SP1 | Kernel Linux 2.6x o 3.x e libreria GNU C (glibc) versione 2.11 o successiva per architettura Intel x86_64 | openSUSE LEAP 15.0, 42.2 e 42.3; Red Hat Enterprise Linux Desktop + Workstation 6.xe 7.x; CentOS 7 |
2019 | Kernel Linux 2.6x o 3.x e libreria GNU C (glibc) versione 2.11 o successiva per architettura Intel x86_64 | openSUSE Leap 42.3 e 15.0; Red Hat Enterprise Linux 7 e 8; CentOS 7 e 8 |
Per quanto riguarda il controllo, il test e la misurazione, possiamo sviluppare con software come:
Naturalmente è possibile programmare il software di test e misura in tutti i linguaggi di programmazione senza beneficiare delle funzioni previste per questo campo. Lo sviluppo richiederà più tempo, ma potrebbe avere il merito di essere indipendente da un prodotto commerciale e chiuso.