LabVIEW

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar

Laboratory Virtual Instrument Engineering Workbench (LabVIEW) es una plataforma de diseño de sistemas y un entorno de desarrollo para un lenguaje de programación visual de National Instruments.

El lenguaje gráfico se denomina "G"; no confundir con código G. El lenguaje de flujo de datos G fue desarrollado originalmente por LabVIEW. LabVIEW se usa comúnmente para adquisición de datos, control de instrumentos y automatización industrial en una variedad de sistemas operativos (SO), incluidos macOS y otras versiones de Unix y Linux, así como Microsoft Windows.

Las últimas versiones de LabVIEW son LabVIEW 2023 Q1 (lanzada en abril de 2023) y LabVIEW NXG 5.1 (lanzada en enero de 2021). NI lanzó las ediciones gratuitas para uso no comercial de LabVIEW y LabVIEW NXG Community el 28 de abril de 2020.

Programación de flujo de datos

El paradigma de programación utilizado en LabVIEW, a veces llamado G, se basa en la disponibilidad de datos. Si hay suficientes datos disponibles para un subVI o función, ese subVI o función 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 conecta diferentes nodos de función dibujando cables. Estos cables propagan variables y cualquier nodo puede ejecutarse tan pronto como todos sus datos de entrada estén disponibles. Dado que este podría ser el caso para múltiples nodos simultáneamente, LabVIEW puede ejecutarse inherentemente en paralelo. El programador integrado explota automáticamente el hardware de multiprocesamiento y subprocesos múltiples, que multiplexa múltiples subprocesos del sistema operativo en los nodos listos para su ejecución.

Programación gráfica

LabVIEW integra la creación de interfaces de usuario (denominados paneles frontales) en el ciclo de desarrollo. Los programas-subrutinas de LabVIEW se denominan instrumentos virtuales (VI). Cada VI tiene tres componentes: un diagrama de bloques, un panel frontal y un panel de conectores. El último se utiliza para representar el VI en los diagramas de bloques de otros, llamándolo VI. El panel frontal está construido mediante controles e indicadores. Los controles son entradas: permiten a un usuario suministrar información al VI. Los indicadores son productos: indican o muestran los resultados basados en los insumos proporcionados al VI. El panel posterior, que es un diagrama de bloques, contiene el código fuente gráfico. Todos los objetos colocados en el panel frontal aparecerán en el panel posterior como terminales. El panel posterior también contiene estructuras y funciones que realizan operaciones en los controles y suministran datos a los indicadores. Las estructuras y funciones se encuentran en la paleta Funciones y se pueden colocar en el panel posterior. En conjunto, los controles, indicadores, estructuras y funciones se denominan nodos. Los nodos se conectan mediante cables, por ejemplo, se pueden conectar dos controles y un indicador a la función de suma para que el indicador muestre la suma de los dos controles. Por lo tanto, un instrumento virtual se puede ejecutar como un programa, con el panel frontal sirviendo como interfaz de usuario, o, cuando se coloca como un nodo en el diagrama de bloques, el panel frontal define las entradas y salidas para el nodo a través del panel conector. Esto implica que cada VI se puede probar fácilmente antes de integrarlo como una subrutina en un programa más grande.

El enfoque gráfico también permite a los no programadores crear programas arrastrando y soltando representaciones virtuales de equipos de laboratorio con los que ya están familiarizados. El entorno de programación LabVIEW, con los ejemplos y la documentación incluidos, simplifica la creación de pequeñas aplicaciones. Esto es un beneficio por un lado, pero también existe el peligro de 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 amplio conocimiento de la sintaxis especial de LabVIEW y la topología de su gestión de memoria. Los sistemas de desarrollo de LabVIEW más avanzados ofrecen la capacidad de crear aplicaciones independientes. Además, es posible crear aplicaciones distribuidas, que se comunican mediante un modelo cliente-servidor y, por tanto, son más fáciles de implementar debido a la naturaleza inherentemente paralela de G.

Patrones de diseño ampliamente aceptados

Las aplicaciones en LabVIEW generalmente se diseñan utilizando arquitecturas bien conocidas, conocidas como patrones de diseño. Los patrones de diseño más comunes para aplicaciones gráficas de LabVIEW se enumeran en la siguiente tabla.

Patrones de diseño comunes para aplicaciones de LabVIEW
Patrón de diseño Propósito Detalles de la aplicación Casos de uso Limitaciones
Variable global funcional Intercambio de información sin utilizar variables globales Un registro de cambio de un bucle de tiempo se utiliza para almacenar los datos y el bucle funciona sólo una iteración en un instrumento virtual "no-reentrante" (VI) Intercambio de información con menos cableado Todos los instrumentos virtuales (VI) se guardan en memoria.
Máquina estatal Ejecución controlada que depende de eventos pasados Estructura de caso dentro de un lazo pasa una variable enumerada a un registro de cambios, representando el siguiente estado; máquinas estatales complejas se pueden diseñar utilizando el módulo Statechart • Interfaz de usuario
• Lógica compleja
• Protocolos de comunicación
Todos los estados posibles deben ser conocidos por adelantado.
Interfaz de usuario impulsada por el evento Procesamiento sin pérdidas de acciones de usuario Los eventos GUI son capturados por una cola de estructura de eventos, dentro de un lazo de tiempo; el lazo mientras se suspende por la estructura del evento y sólo se reanudará cuando los eventos deseados son capturados Interfaz gráfica de usuario Sólo una estructura de evento en un bucle.
Master-slave Ejecutar procesos independientes simultáneamente Varios paralelos mientras bucles, uno de los cuales funciona como el "maestro", controlando los bucles "esclavo" Una interfaz gráfica simple para la adquisición y visualización de datos Se requiere atención y prevención de las condiciones de raza.
Productor-consumidor Asynchronous of multithreaded execution of loops Un bucle maestro controla la ejecución de dos bucles de esclavos, que comunican usando notificadores, colas y semaforas; los bucles independientes de datos se ejecutan automáticamente en hilos separados Muestra y visualización de datos La orden de ejecución no es obvia para controlar.
Máquina estatal consumer-productor impulsado por eventos Interfaz de usuario altamente receptiva para aplicaciones multiteleadas Una interfaz de usuario impulsada por eventos se coloca dentro del bucle de productor y una máquina estatal se coloca dentro del bucle de consumidor, comunicando usando colas entre ellos y otros VIs paralelos Aplicaciones complejas

Beneficios

Interfaz con dispositivos

LabVIEW incluye un amplio soporte para la interfaz con dispositivos como instrumentos, cámaras y otros dispositivos. Los usuarios interactúan con el hardware escribiendo comandos de bus directos (USB, GPIB, Serial) o usando controladores de alto nivel específicos del dispositivo que proporcionan nodos de función nativos de LabVIEW para controlar el dispositivo.

LabVIEW incluye soporte integrado para plataformas de hardware de NI como CompactDAQ y CompactRIO, con una gran cantidad de bloques específicos de dispositivos para dicho hardware, el Measurement and Automation eXplorer (MAX) y Arquitectura de software de instrumentos virtuales (VISA).

National Instruments pone a disposición miles de controladores de dispositivos para descargar en NI Instrument Driver Network (IDNet).

Compilación de código

LabVIEW incluye un compilador que produce código nativo para la plataforma CPU. El código gráfico se convierte en representación intermedia de flujo de datos y luego un compilador basado en LLVM lo traduce en fragmentos de código de máquina ejecutable. El motor en tiempo de ejecución llama a estos fragmentos, lo que permite un mejor rendimiento. La sintaxis de LabVIEW se aplica estrictamente durante el proceso de edición y se compila en el código de máquina ejecutable cuando se solicita su ejecución o al guardar. En el último caso, el ejecutable y el código fuente se fusionan en un único archivo binario. La ejecución está controlada por el motor de tiempo de ejecución de LabVIEW, que contiene código precompilado para realizar tareas comunes definidas por el lenguaje G. El motor de tiempo de ejecución gobierna el flujo de ejecución y proporciona una interfaz consistente para varios sistemas operativos, sistemas gráficos y componentes de hardware. El uso del entorno de ejecución hace que los archivos de código fuente sean portátiles entre plataformas compatibles. Los programas de LabVIEW son más lentos que el código C compilado equivalente, aunque, al igual que en otros lenguajes, la optimización del programa a menudo permite mitigar los problemas con la velocidad de ejecución.

Grandes bibliotecas

Muchas bibliotecas con una gran cantidad de funciones para adquisición de datos, generación de señales, matemáticas, estadísticas, acondicionamiento de señales, análisis, etc., junto con numerosas funciones como integración, filtros y otras capacidades especializadas generalmente asociadas con la captura de datos. de los sensores de hardware es enorme. Además, LabVIEW incluye un componente de programación basado en texto llamado MathScript con funciones adicionales para procesamiento de señales, análisis y matemáticas. MathScript se puede integrar con programación gráfica utilizando nodos de script y utiliza una sintaxis que es generalmente compatible con MATLAB.

Programación paralela

LabVIEW es un lenguaje inherentemente concurrente, por lo que es muy fácil programar múltiples tareas que se realizan en paralelo mediante subprocesos múltiples. Por ejemplo, esto se hace fácilmente dibujando dos o más bucles while paralelos y conectándolos a dos nodos separados. Este es un gran beneficio para la automatización de sistemas de prueba, donde es una práctica común ejecutar procesos como secuenciación de pruebas, registro de datos e interfaz de hardware en paralelo.

Ecosistema

Debido a la longevidad y popularidad del lenguaje LabVIEW y la capacidad de los usuarios de ampliar sus funciones, se ha desarrollado un gran ecosistema de complementos de terceros a través de contribuciones de la comunidad. La mayoría de estos complementos están disponibles para descarga e instalación directa en LabVIEW utilizando VI Package Manager (VIPM), el administrador de paquetes oficial para complementos de LabVIEW. National Instruments también alberga un mercado para complementos de LabVIEW gratuitos y 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 de aprendizaje. También existe una comunidad activa de usuarios de LabVIEW que se comunican a través de varias listas de correo electrónico (grupos de correo electrónico) y foros de Internet.

Edición del paquete para el hogar

National Instruments ofrece una edición LabVIEW Home Bundle de bajo costo.

Edición comunitaria

National Instruments proporciona una versión gratuita para uso no comercial llamada LabVIEW Community Edition. Esta versión incluye todo lo que hay en 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 K-12.

Crítica

LabVIEW es un producto propietario de National Instruments. A diferencia de los lenguajes de programación comunes como C o Fortran, LabVIEW no es administrado ni especificado por ningún comité de estándares de terceros, como el Instituto Nacional Estadounidense de Estándares (ANSI), el Instituto de Ingenieros Eléctricos y Electrónicos (IEEE) y la Organización Internacional de Estandarización (ISO).

No textual

Dado que el lenguaje G no es textual, las herramientas de software como el control de versiones, la comparación lado a lado (o diferenciación) y el seguimiento de cambios de código de versión no se pueden aplicar de la misma manera que para los lenguajes de programación textuales. Existen algunas herramientas adicionales para comparar y fusionar código con herramientas de control de código fuente (control de versiones), como Subversion, CVS y Perforce.

Sin función de zoom

No existe la posibilidad de acercar (o ampliar) un instrumento virtual (VI), lo que será difícil de ver en un monitor grande de alta resolución. Sin embargo, la capacidad de hacer zoom se ha agregado a LabVIEW NXG. El 23 de mayo de 2023, durante el discurso de apertura de la mañana en la conferencia NI Connect en Austin, Texas, se anunció que se espera capacidad de zoom en la versión de verano de 2023 de LabVIEW. Desde que se agregó la función deshacer en LabVIEW 5.0 (mayo de 1998), el zoom ha sido la función más solicitada.

Historial de versiones

En 2005, comenzando con LabVIEW 8.0, las versiones principales se lanzan alrededor de la primera semana de agosto, para coincidir con la conferencia anual NI Week de National Instruments, y seguidas por un lanzamiento de corrección de errores en febrero siguiente.

En 2009, National Instruments comenzó a nombrar los lanzamientos según el año en el que fueron lanzados. 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 un LabVIEW NXG 1.0 completamente rediseñado construido sobre Windows Presentation Foundation (WPF).

Nombre y versiónNúmero de construcciónFechaNotas
Comienzo del proyecto LabVIEW Abril de 1983
LabVIEW 1.0 Octubre de 1986para Macintosh
LabVIEW 2.0 Enero de 1990
LabVIEW 2.5 Agosto de 1992primer lanzamiento para Sun y Windows
LabVIEW 3.0 Julio de 1993Multiplataforma
LabVIEW 3.0.1 1994primer lanzamiento para Windows NT
LabVIEW 3.1 1994
LabVIEW 3.1.1 1995primera liberación con capacidad de "constructor de aplicaciones"
LabVIEW 4.0 Abril de 1996
LabVIEW 4.1 1997
LabVIEW 5.0 Febrero de 1998
LabVIEW RT Mayo de 1999Hora real
6.0 (6i) 6.0.0.4005 26 de julio de 2000
LabVIEW 6.1 6.1.0.4004 12 de abril de 2001
LabVIEW 7.0 (Express) 7.0.0.4000 Abril de 2003
Módulo PDA Mayo de 2003primer lanzamiento del módulo
Módulo FPGA Junio de 2003primera liberación
LabVIEW 7.1 7.1.0.4000 2004
LabVIEW Módulo integrado Mayo de 2005primera liberación
LabVIEW 8.0 8.0.0.4005 Septiembre de 2005
LabVIEW 8.20 Agosto de 2006programación orientada hacia objetos nativos
LabVIEW 8.2.1 8.2.1.4002 21 de febrero de 2007
LabVIEW 8.5 8.5.0.4002 2007
LabVIEW 8.6 8.6.0.4001 24 de julio de 2008
LabVIEW 8.6.1 8.6.0.4001 10 de diciembre de 2008
LabVIEW 2009 9.0.0.4022 4 de agosto de 200932-bit y 64-bit
LabVIEW 2009 SP1 9.0.1.4011 8 de enero de 2010
LabVIEW 2010 10.0.0.4032 4 de agosto de 2010
LabVIEW 2010 f2 10.0.0.4033 16 de septiembre de 2010
LabVIEW 2010 SP1 10.0.1.4004 17 de mayo de 2011
LabVIEW for LEGO MINDSTORMS Agosto de 20112010 SP1 con algunos módulos
LabVIEW 2011 11.0.0.4029 22 de junio de 2011
LabVIEW 2011 SP1 11.0.1.4015 1o de marzo de 2012
LabVIEW 2012 12.0.0.4029 Agosto de 2012
LabVIEW 2012 SP1 12.0.1.4013 Diciembre de 2012
LabVIEW 2013 13.0.0.4047 Agosto de 2013
LabVIEW 2013 SP1 13.0.1.4017 Marzo de 2014
LabVIEW 2014 14.0 Agosto de 2014
LabVIEW 2014 SP1 14.0.1.4008 Marzo de 2015
LabVIEW 2015 15.0f2 Agosto de 2015
LabVIEW 2015 SP1 15.0.1f1 Marzo 2016
LabVIEW 2016 16.0.0 Agosto 2016
LabVIEW 2017 17.0f1 Mayo de 2017
NXG 1.0 1.0.0 Mayo de 2017
LabVIEW 2017 SP1 17.0.1f1 Jan 2018
NXG 2.0 2.0.0 Jan 2018
LabVIEW 2018 18.0 Mayo 2018
NXG 2.1 2.1.0 Mayo 2018
LabVIEW 2018 SP1 18.0.1 Sep 2018
NXG 3.0 3.0.0 Nov 2018
LabVIEW 2019 19.0 Mayo 2019
NXG 3.1 3.1.0 Mayo 2019
LabVIEW 2019 SP1 19.0.1 Nov 2019
LabVIEW NXG 4.0 4.0.0 Nov 2019
LabVIEW 2020 y
LabVIEW NXG 5.0 Community Edition
Abril 2020 primeras versiones
LabVIEW 2021 21.0 Agosto 2021
LabVIEW 2022 Q3 22.3 Julio 2022
2023 Q1 23.1 Enero 2023
LabVIEW 2023 Q3 23.3 Julio 2023

Repositorios y bibliotecas

OpenG, así como LAVA Code Repository (LAVAcr), sirven como repositorios para una amplia gama de aplicaciones y bibliotecas de código abierto de LabVIEW. SourceForge tiene a LabVIEW listado como uno de los posibles lenguajes en los que se puede escribir código.

VI Package Manager se ha convertido en el administrador de paquetes estándar para las bibliotecas de LabVIEW. Tiene un propósito muy similar a RubyGems de Ruby y CPAN de Perl, aunque proporciona una interfaz gráfica de usuario similar al Administrador de paquetes Synaptic. VI Package Manager proporciona acceso a un repositorio de bibliotecas OpenG (y otras) para LabVIEW.

Existen herramientas para convertir MathML en código G.

Software relacionado

National Instruments también ofrece un producto llamado Measurement Studio, que ofrece muchas de las capacidades de prueba, medición y control de LabVIEW, como un conjunto de clases para usar con Microsoft Visual Studio. Esto permite a los desarrolladores aprovechar algunas de las fortalezas de LabVIEW dentro del marco.NET basado en texto. National Instruments también ofrece LabWindows/CVI como una alternativa para programadores ANSI C.

Cuando las aplicaciones necesitan secuenciación, los usuarios suelen utilizar LabVIEW con el software de gestión de pruebas TestStand, también de National Instruments.

El intérprete Ch es un intérprete C/C++ que puede integrarse en LabVIEW para secuencias de comandos.

Robótica DSP' FlowStone DSP también utiliza una forma de programación gráfica similar a LabVIEW, pero está limitada a la industria de la robótica respectivamente.

LabVIEW tiene un nodo directo con modeFRONTIER, un entorno de diseño y optimización multidisciplinario y multiobjetivo, escrito para permitir el acoplamiento a casi cualquier herramienta de ingeniería asistida por computadora. Ambos pueden ser parte de la misma descripción del flujo de trabajo del proceso y pueden ser impulsados virtualmente por las tecnologías de optimización disponibles en modeFRONTIER.

Contenido relacionado

Von Neumann architecture

The von Neumann architecture, also known as the von Neumann model or Princeton architecture, is a computer architecture based on that described in 1945 by ma...

ENIAC

ENIAC, an acronym for Electronic Numerical Integrator And Computer was one of the first general-purpose computers. It was Turing-complete, digital, and...

Logical arithmetic unit

In computing, the arithmetic logical unit or arithmetic-logical unit, also known as the ALU. logic unit), is a digital circuit that performs arithmetic...

Commodore Amiga 4000

The Amiga 4000 computer was the successor to the A2000 and A3000 computers. The A4000 came in a white desktop cabinet with a separate keyboard. There was also..

Motherboard

The motherboard, also known as the motherboard, motherboard, or main board is a printed circuit card to which the components that make up the computer are...
Más resultados...
Tamaño del texto:
undoredo
format_boldformat_italicformat_underlinedstrikethrough_ssuperscriptsubscriptlink
save