LabVIEW és una plataforma de programari, una eina gràfica de test, control i disseny mitjançant la programació de molt alt nivell. El llenguatge que utilitza s'anomena llenguatge G i cerca d'acostar la programació potent tant a usuaris experimentats com a novells, amb temps de desenvolupament molt reduïts.
Constitueix un revolucionari sistema de programació gràfica (veieu Fig. 1) per aplicacions que demanen un gran control, anàlisi i presentació de les dades. Amb LabVIEW es redueix el desenvolupament de les aplicacions i és molt intuïtiu i fàcil de fer servir i aprendre. LabView es diferencia d'altres llenguatges de programació com el Llenguatge C o BASIC per la seva programació gràfica i deixa enrere la feixuga programació de línies i més línies de codi.
Aquest programa va ser creat per National Instruments el 1976 per a funcionar amb màquines Apple Macintosh (MAC), les primeres que tenien una interfície gràfica. Sortí al mercat per primer cop el 1986. Actualment existeix per a plataformes Windows, UNIX, MAC i Linux (amb algunes diferències de programari respecte a Windows). La darrera versió és la LabVIEW 2017, que sortí el maig del 2017.
Els programes fets amb LabVIEW s'anomenen VI (Virtual Instrument), degut a l'ús inicial del programari pel control d'instruments. miniatura|Fig.1 Diagrama de blocs gràfics típica de Labview NI LabVIEW és un entorn de programació gràfica que permet fàcilment controlar i adquirir dades des de qualsevol instrument a qualsevol bus. Es poden automatitzar mesures des de diversos dispositius, analitzar dades així que són adquirits i crear solucions personalitzades, tot en qüestió de minuts.
Usos comuns S'utilitza tant per enginyers com per científics per a tasques com ara: Adquisició i generació de dades (mitjançant les targetes d'adquisició de dades, que recullen els impulsos elèctrics enviats pels sensors) Control d'instruments de laboratori (interns al PC o externs) Automatització industrial amb PAC (Controlador d'Automatització Programable) Disseny de control: simulació, prototipatge ràpid, maquinari-en-el-llaç (HIL) i validació Control i supervisió de processos Disseny integrat de micros i xips Domòtica i xarxes de sensors sense fils Robòtica Visió artificial i control de moviment Educació (enginyers electrònics/telecomunicacions/informàtics...) Joguets com el Lego Mindstorms o el WeDo l'utilitzen, portant la programació gràfica a nens de totes les edats.
Els instruments antónoms tradicionals, tals com oscil·loscopis i generadors d'ona, són molt poderosos, cars i dissenyats per dur a terme una o més feines específiques definides pel fabricant.
Característiques principals La seva principal característica és la facilitat d'ús, ja que permet fer programes relativament complexes a persones amb poca experiència en el món de la programació. També cal dir que és vàlid per a programadors professionals. De fet hi ha milions d'enginyers i científics que l'utilitzen arreu del món en una infinitat d'aplicacions.
Degut a la seva programació gràfica, permet el desenvolupament de programari, per a programadors amb poca experiència, però també, permet fer grans desenvolupaments als programadors més experimentats en LabVIEW. La potència de l'entorn permet la creació d'aplicacions amb milers de VIs (equivalent a milions de pàgines de codi text) per a aplicacions complexes, programes d'automatitzacions de desenes de milers de punts d'entrades/sortides o més, etc. Existeix informació sobre bones pràctiques de programació per a optimitzar el rendiment i la qualitat de la programació. El LabView 7.0 introdueix un nou tipus de subVI anomenat VIs Express (Express VIS). Aquests són VIs interactius que tenen una configuració de caixa de diàleg que permet a l'usuari personalitzar la funcionalitat del VI Express. El VIS estàndard són VIs modulars i personalitzables mitjançant cablejat i funcions que són elements fonamentals d'operació de LabView.
Presenta facilitats per l'ús de: Interfícies de comunicacions: Port sèrie Port paral·lel GPIB PXI VXI TCP/IP, UDP, DataSocket IrDA (infraroig) Bluetooth i WiFi USB OPC... Capacitat d'interaccionar amb altres aplicacions: dll ActiveX Matlab i Simulink Conjunts de .NET Mathematica, Autocad, ... Eines gràfiques i textuals per al processament digital de senyals. Visualització i comandament de gràfiques amb dades dinàmiques, de forma continuada. Adquisició i tractament d'imatges. Control de moviment (i combinat amb tot ho anterior). Temps Real estricte. Programació de FPGAs, processador de senyals digitals i qualsevol microprocessador de 32 bits i algun de 16 bits. Sincronització entre dispositius.
Programació amb LabVIEW En ser una eina gràfica de programació, els programes no s'escriuen, sinó que es dibuixen.
Com s'ha dit és una eina gràfica de programació, això significa que els programes no s'escriuen, sinó que es dibuixen, facilitant la seva comprensió. Al tenir ja pre-dissenyats una gran quantitat de blocs, se li facilita a l'usuari la creació del projecte, amb la qual cosa en comptes d'estar una gran quantitat de temps a programar un dispositiu / bloc, se li permet invertir molt menys temps i dedicar - una mica més en la interfície gràfica i la interacció amb l'usuari final. Cada VI consta de dues parts diferenciades:
Panell Frontal: El Panell Frontal és la interfície amb l'usuari, la utilitzem per interaccionar amb l'usuari quan el programa s'està executant. Els usuaris podran observar les dades del programa actualitzades en temps real (com van fluint les dades, un exemple seria una calculadora, on tu li poses les entrades, i et posa el resultat a la sortida). En aquesta interfície es defineixen els controls (els fem servir com a entrades, poden ser botons, marcadors, etc.) i indicadors (els fem servir com sortides, poden ser gràfiques...).
Diagrama de Blocs: és el programa pròpiament dit, on es defineix la seva funcionalitat, aquí es col·loquen icones que realitzen una determinada funció i s'interconnecten (el codi que controla el programa. sol haver una tercera part icona / connector que són els mitjans utilitzats per a connectar un VI amb altres VIs.
Al panell frontal, trobarem tota mena de controls o indicadors, on cada un d'aquests elements té assignat en el diagrama de blocs una terminal, és a dir l'usuari podrà dissenyar un projecte en el panell frontal amb controls i indicadors, on aquests elements seran les entrades i sortides que interaccionaran amb la terminal del VI. Podem observar en el diagrama de blocs, tots els valors dels controls i Idice, com van fluint entre ells quan s'està executant un programa VI.
Programació concurrent i seqüencial L'eina està dissenyada per a la programació concurrent, permetent un cop compilat executant tot el que es pot començant per les entrades fins que es necessita esperar que la resta de processos acabi. Això facilita molt la tasca de programació per a processadors multinucli. Per altra banda, també és possible afegir blocs de codi, els quals s'executen seqüencialment, per a fer tasques específiques, tot i que no és el mètode recomanat de treball. Gràcies a aquest sistema podem combinar la programació gràfica i l'escrita, mantenint l'execució concurrent del programa excepte dins les caixes de codi seqüencial.
Beneficis Un dels beneficis de LabVIEW respecte altres entorns de desenvolupament és el gran suport per a l'accés al maquinari d'instrumentació. Els Controladors de dispositius i les capes d'abstracció per a molts tipus diferents d'instruments i els busos s'inclouen o es troben disponibles per a la seva inclusió. Aquests es presenten com a nodes gràfics. Les capes d'abstracció ofereixen interfícies de programari estàndard per comunicar-se amb dispositius de maquinari.
Un altre benefici molt important a tenir en compte és la seva facilitat d'aprenentatge. Degut al seu llenguatge G de programació, labView té una corba d'aprenentatge molt poc pronunciada. Això fa que qualsevol persona pugui començar a fer feina productiva en poc temps, minimitzant el temps d'aprenentatge.
Un dels grans beneficis són les seves llibreries, ja que LV té una gran quantitat de llibreries per l'adquisició de dades, generació de senyals, eines matemàtiques, eines estadístiques, condicionament de senyals, anàlisi, etc., juntament amb nombrosos elements de la interfície gràfica que són proporcionats en diferents opcions de diferents "packages". El nombre de blocs de matemàtiques avançades per a funcions com ara la integració, filtres i altres funcions especialitzades en general associades amb la captura de dades dels sensors hardware és immens.
Un altre dels molts beneficis del LabVIEW, és la reutilització de codi. El caràcter modular del codi de LabVIEW permet reutilitzar el codi sense modificacions, ja que si els tipus de dada d'entrada i sortida són compatibles, dos sub VIs són intercanviables.
Crítiques LabVIEW és un programari propietari producte de la National Instruments. A diferència dels llenguatges de programació comuns, com el C o FORTRAN, LabVIEW no és controlat per un comitè d'estàndards com ara l'ANSI.
Llicències A partir de la versió 8, totes les instal·lacions de LabVIEW en equips amb Windows requereix que els clients de National Instruments es posin en contacte per Internet o per telèfon per "activar" el producte. Els usuaris de Macintosh i Linux no estan subjectes a aquest requisit.
La construcció d'una aplicació independent amb LabVIEW requereix el component Application Builder que s'inclou amb el "Sistema de Desenvolupament Professional", sinó que requereix una compra per separat si s'usa el "Paquet bàsic" o el "Sistema de desenvolupament Complet"
Temps d'execució Executables compilats produïts pel Generador d'aplicacions no són veritablement independents, ja que ells també requereixen que el motor del LabVIEW estigui instal·lat en qualsevol equip on l'usuari executi l'aplicació. L'ús dels controls estàndard requereixen una biblioteca de temps d'execució per a qualsevol llenguatge i molts sistemes operatius ja subministren les llibreries necessàries per als llenguatges comuns, com ara C. No obstant això, la biblioteca de temps d'execució requerida per LabVIEW no es subministra amb qualsevol sistema operatiu i cal instal·lar-la específicament per l'administrador o l'usuari. Aquest requisit pot causar problemes si una aplicació es distribueix a un usuari que pot estar preparat per executar l'aplicació, però no té la inclinació o el permís per instal·lar arxius addicionals en el sistema d'acollida abans d'executar el fitxer executable.
Copyright D'acord amb el contracte de llicència de National Instruments un executable construït amb LabVIEW ha de contenir una nota indicant que el programari està escrit en LabVIEW.Llicència del Labview
(1.) You include the following copyright notice "Copyright © [insert year] National Instruments Corporation. All Rights Reserved." in (a) the Authorized Application′s About Box (if applicable) and (b)(i) any applicable written documentation or, (ii) if no such documentation exists, in a "read me" or other .txt file distributed with each copy of the Authorized Application (you may include your own copyright notice with the notice(s) required above);
Hi ha cert debat sobre si LabVIEW és realment un llenguatge de programació de propòsit general (o en alguns casos si és realment un llenguatge de programació), enfront d'un entorn de desenvolupament d'aplicacions específiques per a la mesura i automatització Els crítics assenyalen la manca de característiques comunes a la majoria d'altres llenguatges de programació, com ara la inclusió de característiques orientades a objectes (afegit a la 8.20) o fins a la versió 2009 la falta d'un mètode natiu per fer recursivitat.
Altres alternatives