Ingeniería de Prueba · Biblioteca Técnica
Plataformas, Lenguajes de Programación y VI’s
Fecha de publicación: Pendiente de confirmar
El software que convierte el hardware en un sistema de prueba: LabVIEW y los instrumentos virtuales, C/C++, .NET, Python, TestStand, herramientas interactivas e inteligencia artificial.
1. Presentación del tema
En instrumentación virtual el hardware mide, pero es el software el que define el instrumento: qué se mide, cómo se analiza, cómo se presenta y cómo se decide si una unidad pasa o falla. Existen muchos lenguajes y entornos que se utilizan para este fin. Entre los más relevantes destacan el lenguaje gráfico LabVIEW, los lenguajes de texto C/C++, C# y Python, el entorno LabWindows/CVI para ANSI C, el ejecutivo de pruebas TestStand y herramientas interactivas que no requieren programación, como InstrumentStudio y FlexLogger.
Este artículo cierra la serie recorriendo cada plataforma con un criterio práctico: qué problema resuelve, en qué capa del sistema de prueba se ubica y cuándo conviene elegirla.
2. Arquitectura de software de un sistema de prueba
Un sistema de prueba moderno se organiza en capas. Separarlas es la decisión de arquitectura más importante: permite cambiar un instrumento, un lenguaje o una estación sin reescribir todo lo demás.
3. LabVIEW y los instrumentos virtuales (VI)
LabVIEW (Laboratory Virtual Instrument Engineering Workbench) es un entorno de programación gráfica para instrumentación, análisis y control. Su lenguaje, llamado G, se distingue de la naturaleza secuencial de los lenguajes tradicionales: se programa con una notación de diagramas de bloques —la notación de diseño natural de ingenieros y científicos— y LabVIEW compila el diagrama a código máquina. Los programas se llaman VI (Virtual Instruments), nombre que refleja uno de sus usos principales: el control de instrumentos.
3.1 Anatomía de un VI
- Panel frontal: la interfaz de usuario, con controles (entradas) e indicadores (salidas): perillas, gráficas, tablas, LED.
- Diagrama de bloques: el código. Funciones y subVI conectados por cables que transportan datos.
- Ícono y panel de conectores: permiten usar el VI como subVI dentro de otro, igual que una función en un lenguaje de texto.
3.2 Programación por flujo de datos
En G, un nodo se ejecuta cuando tiene disponibles todos sus datos de entrada, y entrega sus salidas al terminar. El orden de ejecución lo determinan los cables, no el orden en que se escribió el código. Una consecuencia práctica muy valiosa: dos ciclos sin dependencia de datos entre ellos se ejecutan en paralelo, y LabVIEW los distribuye automáticamente entre los núcleos del procesador.
3.3 Capacidades actuales
- Adquisición y control: NI-DAQmx, drivers de instrumentos modulares, VISA para GPIB, serie, USB y Ethernet, y una biblioteca de drivers para cientos de instrumentos de otros fabricantes.
- Análisis: generación de señales, filtros, ventanas, FFT, estadística, regresión, álgebra lineal y kits especializados (sonido y vibración, visión, RF).
- Integración: llamada a DLL y ensamblados .NET, integración de código C/C++ y Python, y llamada a código MATLAB.
- Despliegue: ejecutables con el motor de ejecución de LabVIEW, y los módulos Real-Time y FPGA para sistemas deterministas y lógica en hardware.
- Plataformas: Windows, y Linux y macOS en las ediciones superiores.
La versión más reciente, LabVIEW 2026 Q3, permite pedir a Nigel AI que genere VI desde su ventana de chat, agrega cadenas Unicode (UTF-8) para interfaces multilingües, ajustes de seguridad mejorados, compatibilidad con .NET 8 en Linux y soporte de Python 3.9 a 3.14. LabVIEW publica dos versiones por año: la Q1 incorpora funciones nuevas y la Q3 es su versión de mantenimiento.
Tabla 1. Ediciones de LabVIEW.
| Edición | Uso recomendado |
|---|---|
| Base | Aplicaciones de medición simples en escritorio, solo Windows |
| Full | Matemáticas avanzadas y procesamiento de señales en línea; requerida para Real-Time y FPGA; Windows, Linux y macOS |
| Professional | Validación de código, herramientas de ingeniería de software (comparación gráfica, análisis de código, pruebas unitarias) y despliegue |
| LabVIEW+ Suite | LabVIEW junto con TestStand, DIAdem, FlexLogger, InstrumentStudio y otras herramientas |
| Community | Gratuita, solo para uso personal, no comercial y no industrial |
Fuente: página de selección de ediciones de LabVIEW en ni.com. Las licencias se ofrecen por suscripción y perpetuas.
4. C, C++ y LabWindows/CVI
El lenguaje C, y su evolución C++, sigue siendo uno de los más poderosos para instrumentación: genera código eficiente, se integra con cualquier sistema operativo y es el lenguaje de referencia de las API de bajo nivel. Todos los drivers de NI —NI-DAQmx, NI-SCOPE, NI-DMM, NI-DCPower, NI-SWITCH, VISA— ofrecen una API en C, de modo que una aplicación de prueba puede escribirse con Visual Studio 2026 (versión 18, la más reciente), Visual Studio 2022, Visual Studio Code o cualquier compilador estándar. Visual Studio 2026 abre sin conversión los proyectos y soluciones de Visual Studio 2022 y separa el IDE de las herramientas de compilación MSVC, de modo que el entorno puede actualizarse sin cambiar el compilador validado de la estación.
LabWindows/CVI es el entorno de NI para desarrollar en ANSI C aplicaciones de adquisición, análisis y presentación de datos. Ofrece una biblioteca de interfaz de usuario, bibliotecas de análisis e instrumentación, depuración integrada y un adaptador optimizado para TestStand que importa automáticamente los parámetros de las funciones de una DLL. Se utiliza en manufactura, aplicaciones militares y aeroespaciales, telecomunicaciones y la industria automotriz, y existe una amplia base de código instalada.
La versión instalada de LabWindows/CVI es la 2020 f3, compatible con Windows 11, y NI anunció LabWindows/CVI 2026 Q3, con la que retoma el desarrollo del producto. Aun así, su evolución ha sido mucho menor que la de LabVIEW, Python o .NET y no es compatible con NI Linux Real-Time. Para proyectos nuevos en C/C++ conviene evaluar un entorno estándar (Visual Studio 2026 o 2022, o Visual Studio Code con un compilador moderno) junto con las API en C de los drivers, y reservar CVI para mantener y ampliar el código existente. En cualquier caso, aislar el código de prueba detrás de una HAL reduce el costo de una futura migración.
5. .NET: C#, Visual Basic .NET y Measurement Studio
El ecosistema .NET de Microsoft es una opción natural para aplicaciones de prueba con interfaces de operador elaboradas, integración con bases de datos y servicios corporativos. C# es hoy el lenguaje principal de la plataforma; Visual Basic .NET conserva la sintaxis BASIC y la filosofía «visual» de arrastrar y colocar controles prefabricados en un formulario en lugar de escribir el código de la interfaz.
El entorno de desarrollo es Visual Studio 2026, la versión más reciente, o Visual Studio 2022; ambos admiten proyectos de .NET Framework y de .NET moderno. La versión actual de la plataforma es .NET 10, de soporte a largo plazo (LTS), con C# 14, y Visual Studio 2026 la soporta de forma completa.
Los drivers de instrumentos de NI ofrecen API .NET nativas (DAQmx, DMM, SCOPE, FGEN, DCPower, SWITCH, RFSA, RFSG, entre otros) que no requieren software adicional. TestStand llama ensamblados .NET de forma nativa y su editor, interfaces de operador y complementos .NET se ejecutan sobre .NET 8.
5.1 Measurement Studio
Measurement Studio es la biblioteca de NI para Visual Studio con controles de interfaz para aplicaciones de medición (gráficas, medidores, perillas, indicadores), funciones de análisis y procesamiento de señales, y clases de alto nivel para NI-DAQmx, VISA y GPIB. Está descontinuado: su última versión es Measurement Studio 2019, que se integra por completo (menús, asistentes y plantillas) solo hasta Visual Studio 2019.
Sus ensamblados, sin embargo, siguen funcionando en Visual Studio 2022 si el proyecto se compila para .NET Framework en lugar de .NET moderno. En la práctica:
- Instale Measurement Studio 2019 para que sus ensamblados queden registrados en el equipo.
- En el Visual Studio Installer de Visual Studio 2022, agregue los componentes individuales .NET Framework 4.8 / 4.8.1 targeting pack (y el SDK correspondiente).
- Cree o abra el proyecto como aplicación de Windows Forms o WPF para .NET Framework 4.8 o 4.8.1.
- Agregue manualmente las referencias a los ensamblados
NationalInstruments.*y coloque los controles desde el cuadro de herramientas; aunque se instalan en la carpeta x86, pueden enlazarse a aplicaciones de 64 bits.
Lo que se pierde es la integración con el IDE (asistentes y plantillas de Measurement Studio) y la posibilidad de usarlo con .NET 5 a .NET 10, que no son compatibles con sus ensamblados. Como Visual Studio 2026 conserva la compatibilidad con los proyectos de Visual Studio 2022, el mismo esquema debería funcionar en él, pero conviene validarlo antes de migrar una estación.
Use Measurement Studio en Visual Studio 2022 para mantener y ampliar aplicaciones existentes sobre .NET Framework 4.8.1. Para aplicaciones nuevas sobre .NET 10, use directamente las API .NET de los drivers de NI y bibliotecas de gráficas y análisis de propósito general, y aísle la interfaz de usuario detrás de la HAL para que una futura migración no afecte el código de medición.
6. Python
Python se ha convertido en un lenguaje central en prueba y medición por su facilidad de uso, su enorme ecosistema de análisis de datos, aprendizaje automático e integración, y su adopción en universidades y equipos de validación. NI publica paquetes de Python de código abierto para sus drivers:
nidaqmxpara adquisición de datos.nidmm,niscope,nifgen,nidcpower,niswitch,nidigitalpara instrumentos modulares.pyvisa(de la comunidad) para instrumentos de cualquier fabricante por VISA y SCPI.
TestStand incluye un adaptador de Python que ejecuta módulos fuera del proceso en el intérprete CPython, convierte datos entre variables de Python y de TestStand, permite usar entornos virtuales y varias versiones de Python a la vez, y ejecutar scripts en paralelo. LabVIEW también puede llamar código Python mediante su nodo de Python; LabVIEW 2026 Q3 soporta Python 3.9 a 3.14.
Ejemplo: curva I-V de un diodo con una SMU, en pocas líneas:
# Curva I-V de un diodo con una SMU PXI (barrido de voltaje, medición de corriente)
# Requiere: NI-DCPower y el paquete nidcpower (pip install nidcpower)
import nidcpower
V_INICIO, V_FIN, PASOS = 0.0, 0.8, 41
LIMITE_I = 0.01 # 10 mA de cumplimiento
with nidcpower.Session(resource_name="PXI1Slot2") as smu:
smu.source_mode = nidcpower.SourceMode.SINGLE_POINT
smu.output_function = nidcpower.OutputFunction.DC_VOLTAGE
smu.voltage_level_range = 6.0
smu.current_limit = LIMITE_I
smu.current_limit_range = LIMITE_I
smu.voltage_level = V_INICIO
with smu.initiate():
for k in range(PASOS):
smu.voltage_level = V_INICIO + k * (V_FIN - V_INICIO) / (PASOS - 1)
smu.wait_for_event(nidcpower.Event.SOURCE_COMPLETE)
m = smu.measure_multiple()[0] # voltaje, corriente, cumplimiento
print(f"{m.voltage:7.4f} V {m.current*1e3:9.4f} mA"
f"{' (límite)' if m.in_compliance else ''}")
7. TestStand: administración de pruebas
TestStand es un marco de trabajo flexible y abierto para construir, personalizar y desplegar un sistema de administración de pruebas completo. Se encarga de las tareas comunes a cualquier estación —identificar la unidad bajo prueba, secuenciar los pasos, evaluar límites, informar al operador, generar reportes y registrar resultados en base de datos— para que el ingeniero concentre su esfuerzo en las mediciones.
La versión más reciente, TestStand 2026 Q3, permite que Nigel AI importe un archivo de especificaciones (CSV o Excel) y genere en la secuencia pasos de LabVIEW y Python, creando los módulos de código de marcador de posición que falten. También agrega el despliegue de secuencias en Linux, y la versión 2026 Q1 incorporó un panel de Git para el control de versiones desde el editor de secuencias.
7.1 Componentes
- Motor de TestStand: ejecuta las secuencias y expone una API completa.
- Editor de secuencias: entorno para crear, ejecutar y depurar secuencias, con puntos de interrupción, ejecución paso a paso, seguimiento y expresiones de observación.
- Adaptadores de módulos: llaman código de LabVIEW, LabWindows/CVI, DLL de C/C++, ensamblados .NET, objetos ActiveX/COM, módulos de Python y otras secuencias.
- Modelos de proceso: secuencial, paralelo (sockets independientes que inician y terminan en cualquier momento) y por lotes (sockets sincronizados).
- Resultados: reportes (HTML, XML, PDF) y registro en base de datos personalizables.
- Interfaces de operador y utilidad de despliegue para llevar el sistema a las estaciones de producción.
Tind: tiempo de los pasos que cada unidad ejecuta con recursos propios; Tcomp: tiempo de uso exclusivo de un instrumento compartido; N: número de sockets. La cota superior supone que todas las unidades esperan el recurso compartido.
Cada unidad requiere 45 s de pasos con recursos propios (fuentes, E/S digital por socket) y 15 s de mediciones con un único DMM de precisión compartido. Probadas en secuencia: 4 × (45 + 15) = 240 s por lote. Con el modelo paralelo de TestStand, que bloquea el DMM para que solo una unidad lo use a la vez, el lote tarda como máximo 45 + 4 × 15 = 105 s: 2.3 veces más throughput con el mismo hardware. Con el paso de programación automática (auto schedule), que reordena los pasos para usar el DMM mientras otras unidades hacen pruebas independientes, el tiempo se acerca a 60–75 s; un segundo DMM lo reduciría aún más.
8. Herramientas interactivas sin programación
No toda medición necesita un programa. Para exploración, depuración, validación de diseño y registro de datos, NI ofrece herramientas configurables en las que la medición se arma con pasos visuales en lugar de código:
- InstrumentStudio (para instrumentos PXI): reúne en un solo entorno los paneles frontales virtuales de osciloscopios, DMM, SMU, generadores y switches; guarda configuraciones y permite exportarlas al código o a TestStand.
- FlexLogger (para hardware DAQ): configuración de sensores y registro de datos de señales mixtas sin programación. La edición Lite es gratuita para el hardware DAQ de NI; la edición Professional agrega automatización, disparos, alarmas e integración de mediciones personalizadas.
- DIAdem: análisis, visualización y reporte de grandes volúmenes de datos de medición.
- SystemLink: administración de estaciones de prueba, despliegue de software y gestión de resultados a nivel de planta.
Use la herramienta interactiva como referencia: reproduzca la medición en InstrumentStudio o FlexLogger antes de programarla. Si el programa da un resultado distinto al de la herramienta interactiva con la misma configuración, el problema está en el código, no en el instrumento ni en el cableado.
9. Drivers: el punto común de todos los lenguajes
Lo que permite elegir libremente el lenguaje es que los drivers de NI exponen la misma funcionalidad en LabVIEW, C/C++, .NET y Python, con nombres de funciones y propiedades equivalentes. Una configuración probada en el panel frontal virtual se traduce casi uno a uno a cualquier lenguaje.
Tabla 2. Comparación de plataformas de desarrollo para prueba y medición.
| Plataforma | Paradigma | Fortalezas | Uso típico |
|---|---|---|---|
| LabVIEW | Gráfico, flujo de datos | Productividad en adquisición y control, paralelismo natural, Real-Time y FPGA | Validación, control, sistemas de medición, módulos de prueba |
| C / C++ | Texto, compilado | Desempeño, control fino, portabilidad | Drivers, bibliotecas, aplicaciones de alto desempeño |
| LabWindows/CVI | ANSI C con bibliotecas de instrumentación | Base de código existente, integración con TestStand | Mantenimiento de sistemas ATE en C |
| C# / .NET | Texto, orientado a objetos (Visual Studio 2026/2022; .NET 10 o .NET Framework 4.8.1) | Interfaces de usuario, integración empresarial | Aplicaciones de operador, servicios, integración con MES |
| Python | Texto, interpretado | Facilidad, análisis de datos, ML, comunidad | Validación, automatización de laboratorio, scripts de prueba |
| TestStand | Ejecutivo de secuencias | Paralelismo, reportes, base de datos, multilenguaje | Prueba de producción y validación automatizada |
| InstrumentStudio / FlexLogger | Configuración interactiva | Sin programación, rapidez | Exploración, depuración, registro de datos |
Tabla 3. Versiones de referencia del software de desarrollo.
| Software | Versión más reciente | Observaciones |
|---|---|---|
| LabVIEW | 2026 Q3 | Generación de VI con Nigel, UTF-8, .NET 8 en Linux, Python 3.9–3.14 |
| TestStand | 2026 Q3 | Generación de secuencias a partir de especificaciones, despliegue en Linux |
| LabWindows/CVI | 2020 f3; anunciada 2026 Q3 | Compatible con Windows 11; desarrollo retomado |
| Visual Studio | 2026 (versión 18) y 2022 | 2026 abre proyectos y extensiones de 2022 sin conversión |
| .NET | .NET 10 (LTS) y .NET Framework 4.8.1 | .NET 10 con C# 14; .NET Framework 4.8.1 para código heredado |
| Measurement Studio | 2019 (descontinuado) | Integración completa hasta Visual Studio 2019; ensamblados utilizables en Visual Studio 2022 con .NET Framework 4.8/4.8.1 |
10. Inteligencia artificial en el desarrollo de pruebas
La herramienta más reciente del ingeniero de pruebas es la IA generativa integrada en el entorno de desarrollo. Nigel AI está integrado en LabVIEW y TestStand (desde las versiones 2026 Q3 genera VI y secuencias): responde preguntas en lenguaje natural sobre funciones, configuraciones y conceptos; analiza VI existentes para documentarlos o explicarlos; genera código de LabVIEW a partir de una descripción y crea secuencias de TestStand con módulos de código asignados o de marcador de posición. Su alcance se extiende a InstrumentStudio, FlexLogger y VeriStand, y se incluye con las suscripciones y contratos de servicio de software vigentes.
Aceptar código o secuencias generados por IA sin revisarlos. Un VI generado puede compilar y ejecutarse, y aun así usar un rango, un acoplamiento o un tiempo de apertura incorrectos para la medición. Trate el código generado como el de un colaborador nuevo: revíselo, verifique la configuración contra el panel frontal virtual y valide los resultados con un patrón conocido antes de usarlo en producción.
11. Cómo elegir la plataforma
- Empiece por la capa: exploración interactiva → InstrumentStudio o FlexLogger; módulos de medición → LabVIEW, Python, C/C++ o C#; secuenciación y producción → TestStand.
- Considere al equipo: el mejor lenguaje es el que el equipo puede mantener durante la vida del sistema.
- Verifique el soporte del hardware: drivers disponibles en el lenguaje, sistema operativo y destino (Windows, Linux, tiempo real, FPGA).
- Piense en el despliegue: licencias de ejecución, instaladores, número de estaciones y control de versiones de drivers.
- Combine sin miedo: TestStand permite que cada paso use el lenguaje más adecuado; un sistema puede tener pasos en LabVIEW, Python y C# a la vez.
12. Buenas prácticas de software de prueba
- Separe las capas de la Figura 1: el código de medición no debe conocer el modelo del instrumento ni la secuencia.
- Use control de versiones para VI, secuencias y scripts; LabVIEW Professional incluye comparación y combinación gráfica.
- Escriba pruebas unitarias para los módulos de medición y simule el hardware cuando sea posible.
- Fije las versiones de drivers y entornos de ejecución en cada estación y documente la configuración.
- Registre los datos con contexto: número de serie, estación, versión de software, temperatura y calibración de los instrumentos.
- Valide los límites contra la incertidumbre del sistema de medición (TUR) antes de liberar la prueba a producción.
13. Resumen
- En instrumentación virtual el software define el instrumento; organizarlo en capas permite cambiar hardware, lenguaje o estación sin reescribir todo.
- LabVIEW programa con diagramas de bloques por flujo de datos; sus programas son los VI, con panel frontal, diagrama de bloques y conectores.
- C/C++, C# y Python acceden a los mismos drivers con API equivalentes; LabWindows/CVI se mantiene para bases de código existentes en ANSI C.
- TestStand administra secuencias, ejecución en paralelo, reportes y bases de datos, y llama código en cualquiera de esos lenguajes.
- InstrumentStudio y FlexLogger resuelven mediciones interactivas y registro de datos sin programar.
- La IA integrada (Nigel) acelera el desarrollo, pero su resultado debe revisarse y validarse como cualquier otro código.
14. Glosario ES / EN
- Adaptador de módulo
- Module adapter: componente de TestStand que llama código escrito en un lenguaje específico.
- Capa de abstracción de hardware
- Hardware abstraction layer (HAL): interfaz que oculta el modelo específico del instrumento.
- Diagrama de bloques
- Block diagram: código gráfico de un VI.
- Ejecutivo de pruebas
- Test executive: software que secuencia, ejecuta y registra las pruebas.
- Entorno de desarrollo
- Application development environment (ADE): herramienta para escribir y depurar programas.
- Flujo de datos
- Dataflow: modelo en que un nodo se ejecuta cuando dispone de todas sus entradas.
- Instrumento virtual
- Virtual instrument (VI): programa de LabVIEW.
- Modelo de proceso
- Process model: secuencia de TestStand que define el flujo general de prueba de cada unidad.
- Motor de ejecución
- Run-time engine: componente que ejecuta aplicaciones sin el entorno de desarrollo.
- Panel frontal
- Front panel: interfaz de usuario de un VI.
- Panel frontal virtual
- Soft front panel: interfaz interactiva de un instrumento modular.
- Prueba en paralelo
- Parallel testing: prueba simultánea de varias unidades en una estación.
- Socket de prueba
- Test socket: posición de prueba para una unidad en un modelo paralelo o por lotes.
15. Referencias
- Topete Samaniego, D. «Plataformas, Lenguajes de Programación y VI's», serie Instrumentación Virtual, FFTLab.com.
- Topete Samaniego, D. Instrumentación Modular, davidtopete.com.
- NI. Select Your NI LabVIEW Edition.
- NI. Introduction to TestStand.
- NI. NI Nigel AI.
Por: David Topete Samaniego