Usando CompactRIO con la API NI-DAQmx

Actualizado el Dec 16, 2021

Ambiente

Hardware

  • CompactRIO Controller

Software

  • LabVIEW
  • LabVIEW Real-Time Module

Controlador

  • NI-DAQmx

CompactRIO con NI-DAQmx es la última incorporación a la familia de controladores CompactRIO. Trae dos experiencias de software en una al combinar la facilidad de uso de NI-DAQmx y la funcionalidad de bajo nivel de LabVIEW FPGA.

Este tutorial presenta los diferentes modos de programación disponibles para CompactRIO con controladores NI-DAQmx, y luego demuestra cómo configurar una adquisición simple usando la API NI-DAQmx. Este tutorial demuestra la adquisición continua de datos analógicos de múltiples canales usando un controlador CompactRIO 9048. Los controladores CompactRIO 904x son los primeros en admitir la programación NI-DAQmx. Para ver la lista completa, visite la página de la tienda CompactRIO y ordene por método de programación.

Seleccione el modelo de programación apropiado

LabVIEW proporciona tres modelos de programación para sistemas CompactRIO. Para seleccionar el modelo de programación apropiado, es importante comprender cómo se transportan los datos desde los puertos físicos de entrada y salida en el destino RIO a los componentes del sistema integrado. Cuando se usa un CompactRIO, hay tres formas de acceder a las I/O. En este tutorial, se usa Real-Time (NI-DAQmx Mode).

Modo de tiempo real (NI-DAQmx) : CompactRIO con NI-DAQmx es la última incorporación a la familia de controladores CompactRIO. Trae dos experiencias de software en una al combinar la facilidad de uso de NI-DAQmx y la funcionalidad de bajo nivel de LabVIEW FPGA. También simplifica las arquitecturas del sistema al traer lo último en tecnologías de sincronización y control a la plataforma CompactRIO. Para programar un módulo de la Serie C en este modo, colóquelo en la carpeta Real-Time Resources en el proyecto de LabVIEW. Este tutorial cubrirá cómo configurar una adquisición de datos simple usando NI-DAQmx.

Modo de exploración en tiempo real (variable de I/O) : esta opción le permite programar el procesador en tiempo real de su sistema CompactRIO, pero no la FPGA. En este modo, NI proporciona una personalidad predefinida para el FPGA que escanea periódicamente la I/O y la coloca en un mapa de memoria, poniéndola a disposición de LabVIEW Real-Time. El modo de escaneo en tiempo real de CompactRIO es suficiente para aplicaciones que requieren acceso de un solo punto a I/O a velocidades de unos pocos cientos de hercios. Para programar un módulo de la Serie C en este modo, colóquelo en la carpeta Real-Time Scan Resources en el proyecto de LabVIEW. Consulte el tutorial Realización del control básico con el modo de exploración en tiempo real para obtener más información.

Modo de interfaz LabVIEW FPGA : esta opción le permite desbloquear el poder real de CompactRIO configurando la personalidad de la FPGA además de programar el procesador en tiempo real, logrando un rendimiento que típicamente requeriría hardware personalizado. Con LabVIEW FPGA, puede implementar temporización y disparo personalizados, procesamiento y análisis de señales de descarga, crear protocolos personalizados y acceder a I/O a su velocidad máxima. Para programar un módulo de la Serie C en este modo, colóquelo bajo el objetivo FPGA en el proyecto de LabVIEW. Vea el tutorial Descargar procesamiento de señales con LabVIEW FPGA para obtener más información.

La siguiente figura muestra cómo cada modo envía los datos de I/O a través de una ruta única. Para el modo de tiempo real (NI-DAQmx), los datos se leen a través del procesador a través de los VI de NI-DAQmx. Para el modo de escaneo en tiempo real (IO variable), los datos se envían a través de la FPGA, pero finalmente se accede al procesador arrastrando y soltando los nodos IO en el VI en tiempo real. Para el modo LabVIEW FPGA, la I/O se lee directamente desde dentro de la FPGA arrastrando y soltando los nodos IO al FPGA VI.


Si tiene LabVIEW Real-Time, LabVIEW FPGA y NI-DAQmx en su computadora de desarrollo, puede seleccionar qué modelo de programación usar por módulo colocando el módulo bajo el encabezado apropiado en el proyecto. El modo de programación está indicado por el texto al lado del módulo en el proyecto de LabVIEW. También puede seleccionar qué modelo de programación usar seleccionando del menú desplegable en NI Measurement & Automation Explorer (MAX). Para este tutorial, asegúrese de que el modo de programación en su CompactRIO esté configurado en Real-Time (NI-DAQmx).

Comenzando un Nuevo Proyecto CompactRIO en LabVIEW

Comience creando un nuevo proyecto en LabVIEW para administrar su código y recursos de hardware.

  1. Cree un nuevo proyecto en LabVIEW seleccionando File»Create Project. Luego seleccione Blank Project. Guarde el proyecto seleccionando File»Save e ingresando un nombre único, como CompactRIO Usando NI-DAQmx . Haga clic en OK.
  1. El proyecto predeterminado incluye My Computer, que es donde puede escribir código que se ejecuta en la máquina Windows en la que está desarrollando actualmente. Recuerde que un objetivo en tiempo real tiene un procesador que ejecuta un sistema operativo en tiempo real, por lo que efectivamente es otra computadora. Para escribir código que se ejecute en esa computadora, debe agregar otro objetivo a su proyecto. Haga clic con el botón derecho en el elemento Project en la parte superior del árbol y seleccione New»Targets and Devices… para agregar un sistema en tiempo real al proyecto.
 
  1. Con este cuadro de diálogo, puede descubrir sistemas existentes en su red o agregar un nuevo sistema. Si ya ha configurado su sistema CompactRIO en LabVIEW o en NI MAX, seleccione Existing Target or Device, y Discover an existing target(s) or device(s). Expanda la carpeta Real-Time CompactRIO y seleccione su dispositivo, luego presione OK. Si su dispositivo está conectado a una subred remota, es posible que deba conectarse a través de la dirección IP. Seleccione pecify a target or device by IP address e ingrese la dirección IP de su dispositivo. LabVIEW enumera el hardware disponible correspondiente a los controladores que ha instalado. Ya que instaló el controlador NI-RIO con su software de evaluación, expanda la carpeta Real-Time CompactRIO y luego seleccione cRIO-9045 . Presione OK.
  1. Confirme que sus módulos C-Series aparecen en la sección Real-Time Resources. En este tutorial, está utilizando un módulo de entrada analógica NI-9215.

Adquirir datos usando la API NI-DAQmx en tiempo real

  1. Ahora debería tener un nuevo proyecto de LabVIEW que contenga su sistema CompactRIO, incluyendo el controlador, el chasis y los módulos de I/O de la Serie C. En el proyecto de LabVIEW, haga clic derecho en el controlador CompactRIO en tiempo real y seleccione New »VI . Guarde el VI como DAQmx.vi. Este VI es donde realizará su adquisición y procesamiento de datos usando NI-DAQmx.

 

  1. Empiece por crear un canal virtual DAQmx haciendo clic con el botón derecho en el Front Panel y navegando a Measurement I/O»DAQmx – Data Acquisition»DAQmx Create Virtual Channel. Arrastre este VI al panel frontal.
  1. Haga clic con el botón derecho en el terminal de entrada Physical Channels del DAQmx Create Virtual Channel VI y seleccione Create »Constant . Haga clic en Browse y seleccione todos los canales manteniendo presionada la tecla Mayús y haciendo clic en los elementos. Esto nos permitirá leer de los cuatro canales de entrada analógica en un canal virtual. Si no puede ver ningún canal, confirme que su dispositivo esté conectado y que sus módulos individuales estén configurados para programación en Real Time (NI-DAQmx) en NI MAX.
  1. Busque el DAQmx Timing VI en la paleta DAQmx - Data Acquisition y suéltelo en el panel frontal. Haga clic con el botón derecho en el terminal rate y seleccione Create»Constant. Aquí es donde puede establecer una frecuencia de muestreo personalizada para su adquisición. Asegúrese de que esté configurado en 1000 Hz. Repita este proceso para el terminal del sample mode y elija Continuous Samples en la lista desplegable. Esto nos permitirá tomar datos continuamente.
  1. Crea un bucle while . En la paleta DAQmx - Data Acquisition , busque el DAQmx Read VI y colóquelo dentro del bucle. Como está leyendo múltiples muestras de cuatro canales, haga clic en el menú desplegable del VI y seleccione Analog»Multiple Channels»Multiple Samples»1D Waveform (Samples).
  1. Abra el Panel Frontal de su VI y cree un Gráfico de Forma de Onda haciendo clic derecho para abrir la paleta, luego seleccionando Silver»Graph»Waveform Chart (Silver). En el diagrama de bloques, conecte el data terminal del DAQmx Read a su gráfico de forma de onda. Esto mostrará sus datos de forma de onda. Agregue una función de Wait (ms) y un botón de parada a su bucle. Su VI final debería verse como el de abajo. Nota: Esta captura de pantalla es un fragmento de VI que puede copiar en LabVIEW haciendo clic y arrastrando a su diagrama de bloques.
  1. Ejecute su VI. LabVIEW se conectará a CompactRIO, desplegará el código y luego ejecutará el código en el objetivo en tiempo real. Puede ver los datos en el gráfico de forma de onda que ha creado.

 

Próximos Pasos

Ha completado un ciclo de adquisición de datos simple usando NI-DAQmx en CompactRIO. Hay mucho más que se puede hacer con NI-DAQmx, incluyendo activación personalizada, sincronización entre dispositivos, temporización avanzada y más. Vea la sección de Recursos adicionales para continuar aprendiendo sobre CompactRIO y NI-DAQmx.