stringtranslate.com

LabVIEW

Laboratory Virtual Instrument Engineering Workbench ( LabVIEW ) [1] : 3  es una plataforma de diseño y desarrollo de sistemas gráficos 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 adquisición de datos , control de instrumentos y automatización industrial . Proporciona herramientas para diseñar e implementar sistemas complejos de prueba y medición.

El lenguaje de programación visual (también conocido como gráfico) se llama "G" (no debe confundirse con G-code ). Es un lenguaje de flujo de datos desarrollado originalmente por National Instruments. [2] LabVIEW es compatible con 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 2024 Q3 (lanzada en julio de 2024) y LabVIEW NXG 5.1 (lanzada en enero de 2021). [3] National Instruments lanzó las ediciones gratuitas para uso no comercial de LabVIEW y LabVIEW NXG Community el 28 de abril de 2020. [4]

Programación de flujo de datos

El paradigma de programación utilizado en el lenguaje LabVIEW "G" se basa en la disponibilidad de datos. Si hay suficientes datos disponibles para una 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 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 es 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 este podría ser el caso de varios nodos simultáneamente, LabVIEW puede ejecutarse conceptualmente en paralelo. [5] : 1–2  El hardware de multiprocesamiento y multihilo se explota automáticamente por el programador integrado, que multiplexa múltiples hilos del sistema operativo sobre los nodos listos para la ejecución.

Programación gráfica

Un ejemplo de código de Labview

LabVIEW integra la creación de interfaces de usuario (denominadas paneles frontales) en el ciclo de desarrollo del programa. Los programas de LabVIEW son colecciones de uno o más instrumentos virtuales (VI). Cada VI tiene tres componentes, un panel frontal , un panel posterior y un panel de conectores , todos compuestos de nodos y cables representados gráficamente para el usuario. El panel frontal se construye utilizando controles e indicadores. Los controles son entradas, permiten que un usuario proporcione información al VI. Los indicadores son salidas, indican o 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, elegidas de una paleta de Funciones, que realizan operaciones en los controles y suministran datos a los indicadores. El panel de conectores tiene terminales cuyos cables van hacia o vienen de nodos en los paneles frontal y posterior, y se utiliza para representar el VI dentro del panel posterior de los VI ascendentes (que llaman) y los VI descendentes (llamados) a los que podría estar conectado.

Hay dos formas de ejecutar un VI. Se puede ejecutar por sí solo como un programa, con el panel frontal como interfaz de usuario. Alternativamente, se puede tratar como un nodo que se coloca en el diagrama de bloques de otro VI y se conecta a sus nodos a través del panel conector. En ese caso, se ejecuta como una subrutina dentro de un programa más grande, y el panel frontal controla las entradas y salidas del nodo VI. De este modo, cada VI se puede probar fácilmente como un programa independiente antes de incorporarlo como una subrutina en un programa más grande.

El enfoque gráfico "G" permite a los no programadores crear programas fácilmente arrastrando y soltando representaciones virtuales de equipos de laboratorio con los que ya están familiarizados. El entorno de programación de 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 de construcción de programas "G" funcionales puede hacer que el programador subestime 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 simple que aprovecha la naturaleza inherentemente paralela de "G".

Patrones de diseño de aplicaciones comunes

Las aplicaciones en LabVIEW se diseñan generalmente utilizando arquitecturas conocidas [ cita requerida ] 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.

Características y recursos

Interfaz con dispositivos

LabVIEW incluye un amplio soporte para la interconexión con instrumentos, cámaras y otros dispositivos. Los usuarios interactúan con el hardware escribiendo comandos de bus directos (USB, GPIB, Serial) o utilizando controladores de alto nivel específicos del dispositivo que proporcionan nodos de función "G" nativos para controlar el dispositivo. National Instruments pone a disposición miles de controladores de dispositivos para su descarga en su red de controladores de instrumentos (IDNet). [9]

LabVIEW tiene 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" en código nativo para las plataformas de CPU compatibles. El código gráfico se convierte en una representación intermedia de flujo de datos y, a continuación, un compilador basado en LLVM lo traduce en fragmentos de código de máquina ejecutable. Estos fragmentos de código 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 estrictamente durante el proceso de edición y, cuando se ejecuta o guarda el código "G", se invoca automáticamente el compilador. 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 administra el flujo de ejecución y proporciona una interfaz coherente para los sistemas operativos, sistemas gráficos y componentes de hardware compatibles. El uso de un entorno de ejecución portátil hace que los archivos de código fuente sean portátiles en todas las plataformas compatibles. Los programas de 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. [10]

Grandes bibliotecas

LabVIEW incluye una gran cantidad de bibliotecas que contienen funciones para adquisición de datos, generación de señales, matemáticas, estadísticas, 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 programación gráfica mediante nodos de script y utiliza una sintaxis que generalmente es compatible con MATLAB . [11]

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, dibujando dos o más bucles While paralelos y conectándolos a dos nodos separados. Esto proporciona 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 interconexión de hardware en paralelo.

Ecosistema

Debido a la longevidad y popularidad de la plataforma 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 directa e instalación en LabVIEW mediante el VI Package Manager (VIPM), [12] el administrador de paquetes oficial para complementos de LabVIEW. National Instruments también alberga un mercado para complementos de LabVIEW gratuitos y pagos, llamado NI Tools Network .

Comunidad de usuarios

Existe una edición de bajo costo de LabVIEW para estudiantes, destinada 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 paquete para el hogar

National Instruments ofrece una edición de paquete doméstico de LabVIEW de bajo costo. [13]

Edición comunitaria

National Instruments ofrece una versión gratuita para uso no comercial llamada LabVIEW Community Edition. [14] Esta versión incluye todo lo que contienen 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 primarias y secundarias. [15]

Crítica

LabVIEW es un producto exclusivo de National Instruments. A diferencia de los lenguajes de programación comunes, como C o Fortran , LabVIEW no está administrado 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 en el código de versión, no se pueden aplicar de la misma manera que en los lenguajes de programación textual. Sin embargo, existen algunas herramientas de control de código fuente (control de versiones) que sí permiten la comparación y fusión de código, como Subversion, CVS y Perforce. [16] [17] [18]

Historial de versiones

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

En 2009, National Instruments comenzó a nombrar las versiones según el año en el que se lanzaron. 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 y construido sobre 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 de LabVIEW . SourceForge incluye a LabVIEW como uno de los lenguajes posibles 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. Su propósito es muy similar al de RubyGems de Ruby y al de CPAN de Perl , aunque proporciona una interfaz gráfica de usuario similar a la de Synaptic Package Manager . VI Package Manager proporciona acceso a un repositorio de bibliotecas OpenG (y otras) para LabVIEW.

Existen herramientas para convertir MathML en código "G". [28]

Software relacionado

National Instruments también ofrece Measurement Studio , un producto 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 los programadores ANSI C.

Cuando las aplicaciones necesitan secuenciación, los usuarios a menudo utilizan 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 crear scripts. [29]

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

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 controlados virtualmente por las tecnologías de optimización disponibles en modeFRONTIER.

Véase también

Títulos de software relacionados
Paquetes gratuitos y de código abierto

Referencias

  1. ^ 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 0131856723.OCLC 67361308  .
  2. ^ Síntesis de software a partir de modelos de flujo de datos para G y LabVIEW. Vol. 2. Noviembre de 1998. págs. 1705–1709 vol.2. doi :10.1109/ACSSC.1998.751616. S2CID  7150314.
  3. ^ "Actualizar LabVIEW". Foros . National Instruments.
  4. ^ "NI lanza ediciones gratuitas de su software estrella: LabVIEW". www.businesswire.com . 2020-04-28 . Consultado el 2020-04-28 .
  5. ^ Bress, Thomas J. (2013). Programación eficaz en LabVIEW . [Sl]: NTS Press. ISBN 978-1-934891-08-7.
  6. ^ "Patrones de diseño de aplicaciones: máquinas de estados". Documentos técnicos de National Instruments . 8 de septiembre de 2011. Archivado desde el original el 22 de septiembre de 2017. Consultado el 21 de septiembre de 2017 .
  7. ^ "Patrones de diseño de aplicaciones: maestro/esclavo". Documentos técnicos de National Instruments . 7 de octubre de 2015. Archivado desde el original el 22 de septiembre de 2017. Consultado el 21 de septiembre de 2017 .
  8. ^ "Patrones de diseño de aplicaciones: productor/consumidor". Documentos técnicos de National Instruments . 24 de agosto de 2016. Archivado desde el original el 22 de septiembre de 2017. Consultado el 21 de septiembre de 2017 .
  9. ^ "Controladores de instrumentos de terceros - National Instruments". www.ni.com . Archivado desde el original el 28 de noviembre de 2014.
  10. ^ "Compilador NI LabVIEW: bajo el capó". ni.com . 4 de febrero de 2020.
  11. ^ "Módulo LabVIEW MathScript RT". www.ni.com . Archivado desde el original el 5 de agosto de 2016.
  12. ^ "Escritorio VIPM". www.vipm.io. Consultado el 9 de junio de 2023 .
  13. ^ "LabVIEW Home Bundle para Windows - National Instruments". sine.ni.com . Archivado desde el original el 4 de julio de 2016.
  14. ^ "LabVIEW Community Edition - National Instruments". www.ni.com . Consultado el 28 de abril de 2020 .
  15. ^ "Detalles de uso de LabVIEW Community Edition - National Instruments" www.ni.com . Consultado el 28 de abril de 2020 .
  16. ^ "Pensando en G » Las 5 principales excusas para no usar el control del código fuente". Archivado desde el original el 2016-10-28 . Consultado el 2016-10-28 .
  17. ^ "Gestión de configuración de software y LabVIEW - National Instruments". www.ni.com . Archivado desde el original el 29 de octubre de 2016.
  18. ^ "Configuración de LabVIEW Source Code Control (SCC) para su uso con Team Foundation Server (TFS) - National Instruments". www.ni.com . Archivado desde el original el 28 de octubre de 2016.
  19. ^ "Novedades de NI Developer Suite - National Instruments". www.ni.com . Archivado desde el original el 2014-03-31 . Consultado el 2014-03-31 .
  20. ^ "Detalles del parche LabVIEW 2017 SP1 - National Instruments" www.ni.com . Consultado el 28 de mayo de 2018 .
  21. ^ "Léame de LabVIEW NXG 2.0 - National Instruments" www.ni.com . Consultado el 28 de abril de 2020 .
  22. ^ "Léame de LabVIEW NXG 2.1 - National Instruments" www.ni.com . Consultado el 28 de abril de 2020 .
  23. ^ "Léame de LabVIEW 2018 SP1 para Windows - National Instruments". www.ni.com . Consultado el 28 de abril de 2020 .
  24. ^ "Léame de LabVIEW NXG 3.0 - National Instruments" www.ni.com . Consultado el 28 de abril de 2020 .
  25. ^ "Léame de LabVIEW NXG 3.1 - National Instruments" www.ni.com . Consultado el 28 de abril de 2020 .
  26. ^ "Léame de LabVIEW NXG 4.0 - National Instruments" www.ni.com . Consultado el 28 de abril de 2020 .
  27. ^ "NI lanza ediciones gratuitas de su software estrella: LabVIEW". www.businesswire.com . 2020-04-28 . Consultado el 2020-04-28 .
  28. ^ "Math Node - Una nueva forma de hacer matemáticas en LabVIEW". ni.com . 25 de octubre de 2010. Archivado desde el original el 25 de febrero de 2011.
  29. ^ "Incorporación de un intérprete C/C++ Ch en LabVIEW para la creación de scripts". iel.ucdavis.edu . Archivado desde el original el 15 de mayo de 2011.

Lectura adicional

Artículos sobre usos específicos

Artículos sobre usos educativos

Enlaces externos