Monitoree y registre datos con LabVIEW Real-Time

Actualizado el Jul 27, 2023

Ambiente

Hardware

  • CompactRIO Chassis

Software

  • LabVIEW
  • LabVIEW Real-Time Module

Desarrolle el tutorial Tome su primera medición con LabVIEW Real-Time (Data-Logging), para aprender cómo registrar localmente datos en el disco en objetivos en tiempo real, una tarea necesaria para muchas aplicaciones independientes. Revise el primer tutorial antes de trabajar con este, ya que cubre muchas de las tareas fundamentales para crear su proyecto. Descarga el código de muestra (en inglés) .

Agregar registro de datos a un proyecto de LabVIEW Real-Time

  1. Abra su solución completa desde el primer tutorial, Tome su primera medición con LabVIEW Real-Time (Data-Logging), o descargue el archivo .zip de esta página. Haga doble clic para abrir Real-Time Evaluation.lvproj.
  2. El árbol del proyecto predeterminado incluye Mi PC , 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. RT.vi es el código que se ejecuta en su objetivo en tiempo real. Dado que instaló el controlador NI-RIO con su software de evaluación, el objetivo guardado en este proyecto es un objetivo CompactRIO en tiempo real, que se muestra como el chasis cRIO-9068 . Tenga en cuenta que se comunica con su objetivo ingresando su dirección IP válida una vez que la haya configurado correctamente en la misma red que su computadora de desarrollo.
  1. Haga doble clic para abrir RT.vi y presione <Ctrl-E> para abrir el diagrama de bloques. Un VI está compuesto por dos ventanas, el front panel gris, que sirve como interfaz de usuario, y el block diagram blanco, donde se desarrolla el código. El código completado hasta ahora adquiere datos en un bucle temporizado de alta prioridad, lo almacena en un búfer y lo transfiere de manera determinista a un bucle de menor prioridad para mostrarlo en la interfaz de usuario. Además de mostrarse en la interfaz de usuario, este tutorial cubre el registro de datos localmente en el objetivo en tiempo real. El manejo de errores y los comentarios se agregan en la captura de pantalla siguiente a la primera solución del tutorial. La propagación de errores es especialmente importante en los procesadores integrados para garantizar un apagado seguro.

Es una buena práctica separar el DAQ de alta prioridad de la presentación o el registro de datos. Esto minimiza la fluctuación y permite que su bucle temporizado se ejecute con un rendimiento "en tiempo real", lo que significa que siempre termina a tiempo. Al ejecutar tareas en bucles separados a distintas velocidades, maximiza la eficiencia de la CPU al ejecutar cada tarea solo con la frecuencia necesaria. En el ciclo de baja prioridad, extrae datos del búfer de variable compartida para no solo mostrarlos en la interfaz de usuario, sino también registrarlos en el disco.

  1. Coloque un TDMS Open VI en la estructura de secuencia de inicialización (busque la paleta de Funciones o haga clic derecho en el espacio en blanco para abrir la paleta de Functions y luego navegue hasta Programming»File I/O»TDM Streaming»TDMS Open). Con el formato de archivo NI TDMS, puede organizar los datos en grupos y canales.
  1. Haga clic con el botón derecho en el terminal de entrada del file path y luego Create»Constant. Escriba la ruta del archivo como /c/test1.txt , que es la sintaxis adecuada para el cRIO-9068 que ejecuta NI Linux RTOS. Para los objetivos que ejecutan otro RTOS, como VxWorks o Phar Lap ETS, puede escribir c: \ test1.txt. LabVIEW debería forzarlo a la sintaxis correcta. Cree otra constante para la entrada de la operation y seleccione replace or create para el valor.

Nota : También puede escribir en el almacenamiento USB o tarjeta SD conectado ingresando la ruta del archivo como unidad U :.

  1. Conecte el Error Out de la variable Data Buffer al terminal Error In del TDMS Open VI . Luego, conecte las salidas Error Out y tdms file out a través de la estructura de secuencia al borde del ciclo While, como se muestra a continuación.
  1. Cree una rama desde el cable Error hasta el nodo de entrada Error input en el bucle temporizado para propagar los errores a ambos bucles.
  1. Para escribir en el archivo recién creado, coloque una instancia del TDMS Write VI (Programming»File I/O»TDM Streaming»TDMS Write) dentro del Bucle While y conecte las entradas de referencia de archivo y error de manera apropiada.
  1. Para escribir datos del primer canal en un archivo, coloque un VI Array Subset (Programming »Array» Array Subset) . Ramifique un cable desde la variable compartida del Data Buffer a la entrada del array. Haga clic con el botón derecho en las entradas de  index y length, luego Create»Constant. El índice del primer canal es 0 y la longitud 1 . Entonces, alambre de la salida subarray en la entrada de datos de la TDMS Write VI.
  1. Coloque un Or (Programación »Booleano» Or ) en el diagrama de bloques junto al Control de parada. Luego, conecte una rama desde el terminal Error Out del TDMS Write VI a una entrada, elimine y vuelva a conectar el valor del Stop Button en la otra entrada, como se muestra a continuación. Esto asegura que el programa se detiene desde el botón o si se encuentra un error.
  1. Fuera del bucle While a la derecha, coloque un TDMS Close VI (Programming»File I/O»TDM Streaming»TDMS Close) para asegurarse de que la referencia y el archivo en el disco estén correctamente cerrados. Conecte las entradas de referencia de archivo y error en consecuencia.
  1. Finalmente, haga clic con el botón derecho en cada uno de los error and file reference tunnels en el borde izquierdo del ciclo While y seleccione Replace with Shift Register en el menú desplegable. Un registro de desplazamiento permite el paso de datos de una iteración de bucle a la siguiente. LabVIEW reemplaza el túnel en el que hizo clic derecho con una terminal de registro de desplazamiento, y el cursor se convierte en un icono de registro de desplazamiento ( ). Pase el cursor sobre el túnel en el lado opuesto del bucle hasta que parpadee y luego haga clic en el túnel para reemplazarlo con un registro de desplazamiento.
  1. Cuando esté completo, su ciclo While debería verse así:
  1. Finalmente, complete el cableado del diagrama agregando nombres significativos de grupos y canales para sus datos. Haga clic derecho en el group name y el channel name en las entradas del TDMS Write VI y Create »Constant. A continuación se muestra un ejemplo.
 

Su aplicación básica de adquisición, análisis y registro ahora está completa. Una vez que se conecta al hardware CompactRIO, puede ejecutar el código en el objetivo.

 

Elección del método de programación adecuado para su I/O

Además del acceso FPGA a los módulos de I/O, también es posible combinar la programación FPGA con otros enfoques de programación en los nuevos dispositivos embebidos de NI. 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. Conéctese a cualquier sensor en cualquier bus con más de 100 módulos de la Serie C; I/O modular con acondicionamiento de señal integrado y convertidores A / D de alta precisión.

 

Próximos Pasos

Continúe su Evaluación de LabVIEW con el Kit de Evaluación de LabVIEW RIO

Usando el kit de evaluación LabVIEW RIO, desarrolle un sistema embebido con la arquitectura de I/O reconfigurable (RIO) de LabVIEW. Use el software LabVIEW y C / C ++ para programar el hardware NI RIO, que incluye un procesador en tiempo real, FPGA y E / S. CompactRIO utiliza esta misma arquitectura para la creación de prototipos a través de la implementación con un conjunto flexible de opciones de configuración, expansión y E / S del módulo de la Serie C.