LabVIEW ( Laboratory Virtual Instrument Engineering Workbench ) [ 1 ] : 3 es una plataforma gráfica de diseño y desarrollo de sistemas producida y distribuida por National Instruments , basada en un entorno de programación que utiliza un lenguaje de programación visual . Se utiliza ampliamente para la adquisición de datos , el control de instrumentos y la automatización industrial . Proporciona herramientas para diseñar e implementar sistemas complejos de prueba y medición. [ 2 ]
El lenguaje de programación visual (también conocido como gráfico) se llama "G" (que no debe confundirse con el código G ). Es un lenguaje de flujo de datos desarrollado originalmente por National Instruments. [ 3 ] LabVIEW es compatible con una variedad de sistemas operativos (SO), incluidos macOS y otras versiones de Unix y Linux , así como Microsoft Windows .
Las versiones más recientes de LabVIEW son LabVIEW 2024 Q3 (lanzada en julio de 2024) y LabVIEW NXG 5.1 (lanzada en enero de 2021). [ 4 ] National Instruments lanzó las ediciones gratuitas para uso no comercial de LabVIEW y LabVIEW NXG Community el 28 de abril de 2020. [ 5 ]
Programación de flujo de datos
El paradigma de programación utilizado en el lenguaje "G" de LabVIEW se basa en la disponibilidad de datos. Si hay suficientes datos disponibles para una función, esta se ejecutará. El flujo de ejecución está determinado por la estructura de un diagrama de bloques gráfico (el código fuente de LabVIEW) en el que el programador coloca nodos y los conecta dibujando cables . Un nodo puede ser un control , un indicador , una estructura , una función o, recursivamente, otro diagrama de bloques . Un ejemplo de un diagrama de bloques simple de cuatro nodos son dos controles y un indicador conectados a la función de suma, lo que hace que el indicador muestre la suma de los dos controles. Los cables que conectan los nodos propagan datos como variables, y cualquier nodo puede ejecutarse tan pronto como todas sus variables de entrada (datos) estén disponibles. Dado que esto puede ocurrir con varios nodos simultáneamente, LabVIEW puede ejecutarse conceptualmente en paralelo. [ 6 ] : 1–2 El hardware de multiprocesamiento y multihilo se aprovecha automáticamente mediante el planificador integrado, que multiplexa varios hilos del sistema operativo sobre los nodos listos para la ejecución.
Programación gráfica

LabVIEW integra la creación de interfaces de usuario (denominadas paneles frontales) en el ciclo de desarrollo del programa. Los programas de LabVIEW son conjuntos de uno o más instrumentos virtuales (VIs). Cada VI consta de tres componentes: un panel frontal , un panel posterior y un panel de conectores , todos ellos compuestos por nodos y cables representados gráficamente para el usuario. El panel frontal se construye mediante controles e indicadores. Los controles son entradas que permiten al usuario proporcionar información al VI. Los indicadores son salidas que muestran los resultados en función de las entradas proporcionadas al VI. El panel posterior consta de un diagrama de bloques que contiene el código fuente gráfico. Todos los objetos colocados en el panel frontal aparecerán en el diagrama de bloques del panel posterior como terminales. El diagrama de bloques también contiene estructuras y funciones, seleccionadas de una paleta de funciones, que realizan operaciones sobre los controles y proporcionan datos a los indicadores. El panel de conectores tiene terminales cuyos cables se conectan a los nodos de los paneles frontal y posterior, y se utiliza para representar el VI dentro del panel posterior, tanto de los VIs que lo llaman como de los VIs que lo llaman.
Existen dos maneras de ejecutar un VI. Puede ejecutarse de forma independiente como un programa, con el panel frontal como interfaz de usuario. Alternativamente, puede tratarse como un nodo que se inserta en el diagrama de bloques de otro VI y se conecta a sus nodos mediante el panel de conectores. En este caso, se ejecuta como una subrutina dentro de un programa mayor, y el panel frontal controla las entradas y salidas del nodo VI. De esta forma, cada VI puede probarse fácilmente como un programa independiente antes de integrarse como subrutina en un programa más grande.
El enfoque gráfico de "G" permite a personas sin conocimientos de programación crear programas fácilmente arrastrando y soltando representaciones virtuales de equipos de laboratorio con los que ya están familiarizadas. El entorno de programación LabVIEW incluye ejemplos y documentación para guiar y simplificar la creación de pequeñas aplicaciones. Como ocurre con todas las guías de programación introductorias, la facilidad para crear programas "G" funcionales puede llevar al programador a subestimar la experiencia necesaria para una programación "G" de alta calidad. Para algoritmos complejos o código a gran escala, un programador debe poseer un conocimiento profundo de la sintaxis especial de LabVIEW y la topología de su gestión de memoria. Los sistemas de desarrollo LabVIEW más avanzados ofrecen la posibilidad de crear aplicaciones independientes. Además, es posible crear aplicaciones distribuidas que se comunican mediante un sencillo modelo cliente-servidor que aprovecha la naturaleza inherentemente paralela de "G".
patrones de diseño de aplicaciones comunes
Las aplicaciones en LabVIEW suelen diseñarse utilizando arquitecturas bien conocidas, denominadas patrones de diseño . Los patrones de diseño más comunes para aplicaciones gráficas de LabVIEW se enumeran en la tabla siguiente.
Características y recursos
Interfaz con dispositivos
LabVIEW incluye un amplio soporte para la interfaz con instrumentos, cámaras y otros dispositivos. Los usuarios interactúan con el hardware escribiendo comandos de bus directos (USB, GPIB, serie) o utilizando controladores de alto nivel específicos para cada dispositivo, que proporcionan nodos de función "G" nativos para controlar el dispositivo. National Instruments ofrece miles de controladores de dispositivos para su descarga en su Instrument Driver Network (IDNet). [ 10 ]
LabVIEW incluye soporte integrado para otros productos de National Instruments, como las plataformas de hardware CompactDAQ y CompactRIO , y los conjuntos de herramientas Measurement and Automation eXplorer (MAX) y Virtual Instrument Software Architecture (VISA).
Compilación y ejecución de código
LabVIEW incluye un compilador que traduce el código "G" a código nativo para las plataformas de CPU compatibles. El código gráfico se convierte a la Representación Intermedia de Flujo de Datos (DIR) y, posteriormente, un compilador basado en LLVM lo traduce a fragmentos de código máquina ejecutable . Estos fragmentos son llamados por el motor de ejecución "G" , lo que permite una ejecución nativa rápida y de alto rendimiento del código gráfico. La sintaxis de LabVIEW se aplica rigurosamente durante el proceso de edición, y cuando se ejecuta o guarda el código "G", el compilador se invoca automáticamente. El código "G" se guarda en un único archivo binario que contiene tanto el código fuente como el ejecutable. La ejecución está controlada por el motor de ejecución, que contiene código precompilado para realizar tareas comunes definidas en el lenguaje "G". El motor de ejecución gestiona el flujo de ejecución y proporciona una interfaz consistente para los sistemas operativos, sistemas gráficos y componentes de hardware compatibles. El uso de un entorno de ejecución portátil permite que los archivos de código fuente sean portables entre las plataformas compatibles. Los programas LabVIEW son más lentos que el código C compilado equivalente, aunque a menudo es posible mitigar los problemas de velocidad con optimizaciones del programa. [ 11 ]
Grandes bibliotecas
LabVIEW incluye una gran cantidad de bibliotecas con funciones para adquisición de datos, generación de señales, matemáticas, estadística, acondicionamiento de señales, análisis, integración, filtrado y otras capacidades especializadas, como la captura de datos de sensores de hardware. Además, incluye MathScript , un componente de programación basado en texto con funciones integradas para procesamiento de señales, análisis y matemáticas. MathScript se puede integrar con la programación gráfica mediante nodos de script y utiliza una sintaxis generalmente compatible con MATLAB . [ 12 ]
Programación paralela
LabVIEW es un lenguaje inherentemente concurrente , por lo que resulta muy sencillo programar múltiples tareas que se ejecutan en paralelo mediante multihilo. Por ejemplo, se pueden dibujar dos o más bucles while paralelos y conectarlos a dos nodos independientes. Esto supone una gran ventaja para la automatización de sistemas de prueba, donde es habitual ejecutar procesos como la secuenciación de pruebas, la grabación de datos y la interfaz de hardware en paralelo.
Ecosistema
Debido a la longevidad y popularidad de la plataforma LabVIEW y la capacidad de los usuarios para ampliar sus funciones, se ha desarrollado un amplio ecosistema de complementos de terceros gracias a las contribuciones de la comunidad. La mayoría de estos complementos están disponibles para su descarga e instalación directa en LabVIEW mediante el VI Package Manager (VIPM), [ 13 ] el gestor de paquetes oficial para complementos de LabVIEW. National Instruments también gestiona un mercado de complementos de LabVIEW, tanto gratuitos como de pago, llamado NI Tools Network .
Comunidad de usuarios
Existe una edición para estudiantes de LabVIEW de bajo costo dirigida a instituciones educativas con fines didácticos. Además, existe una comunidad activa de usuarios de LabVIEW que se comunican a través de varias listas de correo electrónico (grupos de correo) y foros de Internet .
Edición para el hogar (Paquete)
National Instruments ofrece una edición LabVIEW Home Bundle de bajo costo. [ 14 ]
Edición comunitaria
National Instruments ofrece una versión gratuita para uso no comercial llamada LabVIEW Community Edition. [ 15 ] Esta versión incluye todo lo de las ediciones profesionales de LabVIEW, no tiene marcas de agua e incluye el módulo web LabVIEW NXG para uso no comercial. Estas ediciones también pueden ser utilizadas por escuelas de primaria y secundaria. [ 16 ]
Crítica
LabVIEW es un producto propietario de National Instruments. A diferencia de lenguajes de programación comunes como C o Fortran , LabVIEW no está gestionado ni estandarizado por ningún comité de estándares externo.
No textual
Dado que el lenguaje "G" no es textual, las herramientas de software comunes, como el control de versiones, la comparación en paralelo (o diff) y el seguimiento de cambios de código, no se pueden aplicar de la misma manera que en los lenguajes de programación textuales. Sin embargo, existen algunas herramientas de control de versiones que sí permiten la comparación y fusión de código, como Subversion, CVS y Perforce. [ 17 ] [ 18 ] [ 19 ]
Historial de lanzamientos
La primera versión de LabVIEW, la 1.0, se lanzó a finales de octubre de 1986, inicialmente solo para Apple Macintosh. [ 20 ] Los desarrolladores originalmente planearon dirigirse a IBM PC, debido a su mayor popularidad, pero decidieron que sería más rápido dirigirse a Macintosh para un prototipo inicial; durante el proceso de desarrollo, se dieron cuenta de que una versión para IBM PC no sería factible hasta que la plataforma PC contara con un entorno de ventanas adecuado. [ 20 ]
En 2005, a partir de LabVIEW 8.0, las versiones principales se lanzaron alrededor de la primera semana de agosto, para coincidir con la conferencia anual de National Instruments, NI Week, seguidas de una versión con correcciones de errores en febrero del año siguiente.
En 2009, National Instruments comenzó a nombrar sus versiones según el año de su lanzamiento. Una corrección de errores se denomina Service Pack; por ejemplo, el Service Pack 1 de 2009 se lanzó en febrero de 2010.
En 2017, National Instruments trasladó la conferencia anual a mayo y lanzó LabVIEW 2017 junto con una versión completamente rediseñada de LabVIEW NXG 1.0 basada en Windows Presentation Foundation (WPF).
Repositorios y bibliotecas
OpenG y LAVA Code Repository (LAVAcr) sirven como repositorios para una amplia gama de aplicaciones y bibliotecas de código abierto para LabVIEW . SourceForge incluye LabVIEW como uno de los lenguajes posibles para escribir código.
VI Package Manager se ha convertido en el gestor de paquetes estándar para las bibliotecas de LabVIEW. Su propósito es muy similar al de RubyGems de Ruby y CPAN de Perl , aunque ofrece una interfaz gráfica de usuario parecida a la del gestor de paquetes Synaptic . VI Package Manager proporciona acceso a un repositorio de las bibliotecas OpenG (y otras) para LabVIEW.
Existen herramientas para convertir MathML en código "G". [ 30 ]
Software relacionado
National Instruments también ofrece Measurement Studio , un producto que proporciona muchas de las capacidades de prueba, medición y control de LabVIEW como un conjunto de clases para su uso con Microsoft Visual Studio . Esto permite a los desarrolladores aprovechar algunas de las ventajas de LabVIEW dentro del entorno .NET Framework basado en texto . National Instruments también ofrece LabWindows/CVI como alternativa para programadores de ANSI C.
Cuando las aplicaciones requieren secuenciación, los usuarios suelen utilizar LabVIEW con el software de gestión de pruebas TestStand de National Instruments.
El intérprete Ch es un intérprete de C / C++ que se puede integrar en LabVIEW para la creación de scripts. [ 31 ]
El procesador de señal digital FlowStone de DSP Robotics también utiliza una forma de programación gráfica similar a LabVIEW, pero está limitada a la industria robótica.
LabVIEW cuenta con una integración directa con modeFRONTIER , un entorno de diseño y optimización multidisciplinario y multiobjetivo, diseñado para acoplarse a prácticamente cualquier herramienta de ingeniería asistida por ordenador . Ambos pueden formar parte de la misma descripción del flujo de trabajo y pueden controlarse virtualmente mediante las tecnologías de optimización disponibles en modeFRONTIER.
Véase también
- Lenguaje de programación de cuarta generación
- Diseño de sistemas gráficos
- Lego Mindstorms NXT , cuyo entorno de programación NXT-G se basa en LabVIEW y puede programarse dentro de LabVIEW.
- 20-sim
- Simulink
- Instrumentación virtual
- TOMVIEW
- DRAKON , dominio público, con algunos componentes de código abierto.
Referencias
- ↑ Jeffrey, Travis (2006). LabVIEW para todos : programación gráfica fácil y divertida . Kring, Jim (3.ª ed.). Upper Saddle River, NJ: Prentice Hall. ISBN 0131856723OCLC 67361308
- ↑ Schneiderman, Rob (21 de octubre de 2002). "James Truchard y Jeff Kodosky: Convirtiendo las PC en instrumentos virtuales" . Electronics Design. Archivado del original el 11 de agosto de 2011.
- ↑ Síntesis de software a partir de modelos de flujo de datos para G y LabVIEW . Vol. 2. Noviembre de 1998. pp. 1705–1709 vol.2. doi : 10.1109/ACSSC.1998.751616 . S2CID 7150314 .
- ↑ "Actualizar LabVIEW" . Foros . National Instruments.
- ↑ "NI lanza ediciones gratuitas de su software insignia: LabVIEW" . www.businesswire.com . 28 de abril de 2020. Consultado el 28 de abril de 2020 .
- ↑ Bress, Thomas J. (2013). Programación eficaz en LabVIEW . [Sl]: NTS Press. ISBN 978-1-934891-08-7.
- ↑ "Patrones de diseño de aplicaciones: máquinas de estados" . Documentos técnicos de National Instruments . 8 de septiembre de 2011. Archivado del original el 22 de septiembre de 2017. Consultado el 21 de septiembre de 2017 .
- ↑ "Patrones de diseño de aplicaciones: Maestro/Esclavo" . Documentos técnicos de National Instruments . 7 de octubre de 2015. Archivado del original el 22 de septiembre de 2017. Consultado el 21 de septiembre de 2017 .
- ↑ "Patrones de diseño de aplicaciones: productor/consumidor" . Documentos técnicos de National Instruments . 24 de agosto de 2016. Archivado del original el 22 de septiembre de 2017. Consultado el 21 de septiembre de 2017 .
- ↑ "Controladores de instrumentos de terceros - National Instruments" . www.ni.com . Archivado del original el 28/11/2014.
- ↑ "Compilador NI LabVIEW: Un vistazo al funcionamiento interno" . ni.com . 4 de febrero de 2020.
- ↑ "Módulo LabVIEW MathScript RT" . www.ni.com . Archivado del original el 5 de agosto de 2016.
- ↑ "VIPM Desktop" . www.vipm.io. Consultado el 9 de junio de 2023 .
- ↑ "Paquete LabVIEW Home para Windows - National Instruments" . sine.ni.com . Archivado del original el 4 de julio de 2016.
- ↑ "LabVIEW Community Edition - National Instruments" . www.ni.com . Consultado el 28 de abril de 2020 .
- ↑ "Detalles de uso de LabVIEW Community Edition - National Instruments" . www.ni.com . Consultado el 28 de abril de 2020 .
- ↑ "Pensando en G » Las 5 peores excusas para no usar el control de código fuente" . Archivado del original el 28/10/2016 . Consultado el 28/10/2016 .
- ↑ "Gestión de configuración de software y LabVIEW - National Instruments" . www.ni.com . Archivado del original el 29/10/2016.
- ↑ "Configuración del control de código fuente (SCC) de LabVIEW para su uso con Team Foundation Server (TFS) - National Instruments" . www.ni.com . Archivado del original el 28/10/2016.
- 1 2 Kodosky, Jeffrey (2020-06-12). "LabVIEW" . Proc. ACM Program. Lang . 4 (HOPL): 78:1–78:54. doi : 10.1145/3386328 .
- ↑ "Novedades de NI Developer Suite - National Instruments" . www.ni.com . Archivado del original el 31 de marzo de 2014. Consultado el 31 de marzo de 2014 .
- ↑ "Detalles del parche LabVIEW 2017 SP1 - National Instruments" . www.ni.com . Consultado el 28 de mayo de 2018 .
- ↑ "LabVIEW NXG 2.0 Readme - National Instruments" . www.ni.com . Consultado el 28 de abril de 2020 .
- ↑ "LabVIEW NXG 2.1 Readme - National Instruments" . www.ni.com . Consultado el 28 de abril de 2020 .
- ↑ "LabVIEW 2018 SP1 Readme para Windows - National Instruments" . www.ni.com . Consultado el 28 de abril de 2020 .
- ↑ "LabVIEW NXG 3.0 Readme - National Instruments" . www.ni.com . Consultado el 28 de abril de 2020 .
- ↑ "LabVIEW NXG 3.1 Readme - National Instruments" . www.ni.com . Consultado el 28 de abril de 2020 .
- ↑ "LabVIEW NXG 4.0 Readme - National Instruments" . www.ni.com . Consultado el 28 de abril de 2020 .
- ↑ "NI lanza ediciones gratuitas de su software insignia: LabVIEW" . www.businesswire.com . 28 de abril de 2020. Consultado el 28 de abril de 2020 .
- ↑ "Nodo matemático: una nueva forma de hacer matemáticas en LabVIEW" . ni.com . 25 de octubre de 2010. Archivado del original el 25 de febrero de 2011.
- ↑ "Integración de un intérprete de C/C++ Ch en LabVIEW para scripting" . iel.ucdavis.edu . Archivado del original el 15 de mayo de 2011.
Lecturas adicionales
- Bress, Thomas J. (2013). Programación eficaz en LabVIEW . [Sl]: NTS Press. ISBN 978-1-934891-08-7.
- Blume, Peter A. (2007). The LabVIEW Style Book . Upper Saddle River, NJ: Prentice Hall. ISBN 978-0-13-145835-2.
- Travis, Jeffrey; Kring, Jim (2006). LabVIEW para todos : Programación gráfica fácil y divertida (3.ª ed.). Upper Saddle River, NJ: Prentice Hall. ISBN 0-13-185672-3.
- Conway, Jon; Watts, Steve (2003). Un enfoque de ingeniería de software para LabVIEW . Upper Saddle River, NJ: Prentice Hall PTR. ISBN 0-13-009365-3.
- Olansen, Jon B.; Rosow, Eric (2002). Bioinstrumentación virtual : aplicaciones biomédicas, clínicas y sanitarias en LabVIEW . Upper Saddle River, NJ: Prentice Hall PTR. ISBN 0-13-065216-4.
- Beyon, Jeffrey Y. (2001). Programación, adquisición y análisis de datos en LabVIEW . Upper Saddle River, NJ: Prentice Hall PTR. ISBN 0-13-030367-4.
- Travis, Jeffrey (2000). Aplicaciones de Internet en LabVIEW . Upper Saddle River, NJ: Prentice Hall PTR. ISBN 0-13-014144-5.
- Essick, John (1999). Laboratorios avanzados de LabVIEW . Upper Saddle River, NJ: Prentice Hall. ISBN 0-13-833949-X.
Artículos sobre usos específicos
- Desnica, Vladan; Schreiner, Manfred (octubre de 2006). «Un espectrómetro de fluorescencia de rayos X portátil controlado por LabVIEW para el análisis de objetos de arte» . Espectrometría de rayos X. 35 (5): 280–286 . Bibcode : 2006XRS....35..280D . doi : 10.1002/xrs.906 . Archivado del original el 18 de agosto de 2010.
- Keleshis, C.; Ionita, C.; Rudin, S. (junio de 2006). "Interfaz gráfica de usuario Labview [sic] para detector microangiofluoroscópico de alta resolución" . Medical Physics . 33 (6): 2007. doi : 10.1118/1.2240285 .
- Fedak, W.; Bord, D.; Smith, C.; Gawrych, D.; Lindeman, K. (mayo de 2003). "Automatización del experimento Franck-Hertz y la máquina de rayos X Tel-X-Ometer usando LABVIEW" . American Journal of Physics . 71 (5). AAPT: 501– 506. Bibcode : 2003AmJPh..71..501F . doi : 10.1119/1.1527949 .
Artículos sobre usos de la educación
- Belletti, A.; Borromei, R.; Ingletto, G. (septiembre de 2006). "Enseñanza de experimentos de química física con una simulación por computadora mediante LabVIEW". Journal of Chemical Education . 83 (9). ACS: 1353– 1355. Bibcode : 2006JChEd..83.1353B . doi : 10.1021/ed083p1353 .
- Moriarty, PJ; Gallagher, BL; Mellor, CJ; Baines, RR (octubre de 2003). "Computación gráfica en el laboratorio de pregrado: enseñanza e interfaz con LabVIEW" . American Journal of Physics . 71 (10). AAPT: 1062–1074 . Bibcode : 2003AmJPh..71.1062M . doi : 10.1119/1.1582189 .
- Lauterburg, Urs (junio de 2001). "LabVIEW en la enseñanza de la física" (PDF) . Un documento técnico sobre el uso de LabVIEW en demostraciones de física, experimentos de laboratorio y simulaciones .
- Drew, Steven M. (diciembre de 1996). "Integración del software LabVIEW de National Instruments en el currículo de química". Journal of Chemical Education . 73 (12). ACS: 1107– 1111. Bibcode : 1996JChEd..73.1107D . doi : 10.1021/ed073p1107 .
- Muyskens, Mark A.; Glass, Samuel V.; Wietsma, Thomas W.; Gray, Terry M. (diciembre de 1996). "Adquisición de datos en el laboratorio de química utilizando el software LabVIEW". Journal of Chemical Education . 73 (12). ACS: 1112– 1114. Bibcode : 1996JChEd..73.1112M . doi : 10.1021/ed073p1112 .
- Ogren, Paul J.; Jones, Thomas P. (diciembre de 1996). "Interfaz de laboratorio mediante el paquete de software LabVIEW". Journal of Chemical Education . 73 (12). ACS: 1115– 1116. Bibcode : 1996JChEd..73.1115O . doi : 10.1021/ed073p1115 .
- Trevelyan, JP (junio de 2004). "10 años de experiencia con laboratorios remotos" (PDF) . Conferencia internacional sobre investigación en educación en ingeniería . ACS.
Enlaces externos
- Sitio web oficial
- Software multiplataforma
- Software de análisis numérico para Linux
- Software de análisis numérico para macOS
- Software de análisis numérico para Windows
- Lenguajes de programación numérica
- Software numérico
- Entornos de desarrollo pedagógico integrado
- Lenguaje de modelado de software
- Lenguajes de programación síncronos
- lenguajes de programación visual
- Lenguajes de programación que admiten unidades de medida