Tome su primera medición con LabVIEW Real-Time (Data Logging)

Actualizado el Mar 26, 2024

Ambiente

Hardware

  • CompactRIO Controller

Software

  • LabVIEW

Controlador

  • NI-DAQmx

Este tutorial proporciona un guía para registrar datos en el disco con CompactRIO.

Una vez que haya terminado de detectar su sistema CompactRIO usando LabVIEW, necesita tomar su primera medida.

Esta página es parte de un tutorial sobre cómo configurar su sistema CompactRIO .

Creando un Nuevo Proyecto CompactRIO en LabVIEW

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

  1. Cree un nuevo proyecto en LabVIEW seleccionando Archivo »Nuevo proyecto
  2. Agregue su sistema CompactRIO al proyecto haciendo clic derecho en Proyecto en la parte superior del árbol y seleccione Nuevo »Objetivos y dispositivos … Este menú le permite descubrir sistemas en su red o agregar sistemas sin conexión.

Figura 1. Agregue nuevos objetivos y dispositivos a su proyecto de LabVIEW
  1. Expanda la carpeta Real-Time CompactRIO y seleccione su sistema. Haga clic en Aceptar para cerrar la ventana de diálogo.

Nota Si su sistema no está en la lista, LabVIEW no lo detectó en la red. Asegúrese de que su sistema esté configurado correctamente con una dirección IP válida en el Explorador de Medición y Automatización. Si su sistema está en una subred remota, también puede elegir ingresar manualmente la dirección IP.


Figura 2. Seleccione un nuevo sistema CompactRIO

Seleccione el Modo de Programación Apropiado

Los sistemas CompactRIO tienen al menos dos modos seleccionables por el usuario. Algunos modelos de CompactRIO tienen un modo adicional seleccionable por el usuario para programar en NI-DAQmx en tiempo real. Consulte este artículo para determinar si su CompactRIO es capaz de usar NI-DAQmx en tiempo real. Después de agregar su dispositivo al proyecto, se le pedirá que seleccione el modo de programación que le gustaría usar.
Nota : Puede cambiar el modo de programación más tarde si es necesario usando el cuadro de diálogo Propiedades del Chasis CompactRIO .

Modo en 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.

Modo de Escaneo en Tiempo Real (E/S variable) : esta opción le permite programar el procesador en tiempo real de su sistema CompactRIO, pero no el FPGA. En este modo, NI proporciona una personalidad predefinida para el FPGA que escanea periódicamente la E/S 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 E/S a velocidades de unos pocos cientos de hertz. 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. Para aprender más sobre el modo de escaneo, lea el documento Entendiendo el Modo de Escaneo de NI CompactRIO y vea los puntos de referencia .
Nota : NI recomienda el modo en tiempo real (NI-DAQmx) sobre el modo de escaneo en tiempo real (variable de E/S).

Modo de interfaz LabVIEW FPGA : esta opción le permite desbloquear el verdadero poder de CompactRIO al modificar la personalidad de la FPGA además de programar el procesador en tiempo real, logrando un rendimiento que normalmente 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 E/S a su velocidad máxima. Para programar un Módulo de la Serie C en este modo, colóquelo bajo el FPGA deseado en el proyecto de LabVIEW.
LabVIEW ahora intentará detectar el chasis y los módulos de E/S de la serie C presentes en su sistema y agregarlos automáticamente al proyecto de LabVIEW.
Nota : Si su sistema no fue encontrado y opta por agregarlo sin conexión, deberá agregar el chasis y las E/S de la serie C manualmente. Este documento describe este proceso para el modo de escaneo y el modo FPGA.

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


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 al colocarlo bajo el encabezado deseado 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 el Explorador de Medición y Automatización (MAX).

Cree una aplicación de registro básica en CompactRIO

Esta sección se divide en tres subsecciones que le muestran cómo crear una aplicación básica de registro de temperatura. Seleccione una sección según el modo de programación que desee y su controlador CompactRIO. Consulte la sección Seleccionar el Modo de Programación Apropiado si no está seguro del modo de programación que desea. Las secciones se enumeran en el siguiente orden

  1. API de NI-DAQmx
  2. Modo de Programación FPGA
  3. Modo de Escaneo en Tiempo Real

I. Usando NI-DAQmx API

El controlador NI-DAQmx viene con una variedad de VIs de ejemplo para ayudar a los usuarios a familiarizarse con la API de NI-DAQmx. Esta sección le enseñará cómo importar un ejemplo NI-DAQmx a un CompactRIO. Importaremos el Termopar - VI de Entrada Continua.

  1. Cree un nuevo proyecto en LabVIEW seleccionando Archivo »Nuevo proyecto
  2. Para agregar su sistema CompactRIO al proyecto, haga clic con el botón derecho en el elemento Proyecto en la parte superior del árbol y seleccione Nuevo »Objetivos y Dispositivos ...

Figura 3 . Creando un nuevo Target en el proyecto de LabVIEW
  1. Este cuadro de diálogo le permite descubrir sistemas en su red o agregar sistemas fuera de línea. Expanda la carpeta Real-Time CompactRIO , seleccione su sistema cRIO-904x y haga clic en Aceptar . Nota: Si su sistema no está en la lista, LabVIEW no podra detectarlo en la red. Asegúrese de que su sistema esté configurado correctamente con una dirección IP válida en el Explorador de medición y automatización. Si su sistema está en una subred remota, también puede seleccionar ingresar manualmente la dirección IP.

Figura 4. Buscando un CompactRIO en tiempo real en LabVIEW
  1. Para agregar el Thermopar - VI de Entrada Continua al proyecto de LabVIEW, haga clic derecho en el objetivo cRIO-904x y seleccione Add >> File ... que abrirá el explorador de archivos.
 
Los ejemplos de NI-DAQmx se instalarán de forma predeterminada y se pueden encontrar aquí:
C: \ Archivos de programa (x86) \ National Instruments \ LabVIEW <xxxx> \ examples \ DAQmx
(en el sistema operativo x32, la ruta de archivo predeterminada será C: \ Archivos de programa \ National Instruments \ LabVIEW <xxxx> \ examples \ DAQmx).

Figura 5 . Ubicación del archivo Termopar - VI de Entrada Continua
 
  1. Asegúrese de que los módulos configurados para ser usados en la tarea NI-DAQmx del Termopar - VI de Entrada Continua estén en modo de Tiempo Real (NI-DAQmx) moviéndolos bajo el ítem Recursos en Tiempo Real. También asegúrese de que los cambios en el modo de programación se implementen en el destino.

Figura 6 . Jerarquía del proyecto en LabVIEW
  1. Abra el VI y configure sus controles / constantes de canal físico para el módulo y canales apropiados. Nota: El NI-9211 requiere una frecuencia de muestreo más baja que los valores predeterminados observados en este VI de ejemplo.
  2. Abra el diagrama de bloques. Navegue a la sección de Configuración de Temporización del diagrama de bloques.
  3. Implemente un VI DAQmx Registro de Configuración (TDMS) entre el Nodo de Propiedad de Temporización de DAQmx y la Estructura del Caso . Asegúrese de que los cables de tarea y error pasen por el VI DAQmx Registro de Configuración (TDMS).
  4. Haga clic derecho en la terminal del Modo de Registro y seleccione Crear >> Constante . Asegúrese de que la constante esté en Registrar y Leer .
  5. Haga clic derecho en la terminal de ruta de archivo y seleccione Crear >> Constante . Consulte el paso 23 de la sección Uso del Modo de Escaneo en Tiempo Real de CompactRIO para obtener instrucciones sobre cómo hacer referencia a la ruta de su archivo.
  6. Verifique que su configuración del VI DAQmx Registro de Configuración (TDMS) aparezca como se muestra a continuación.

Figura 7 . Ediciones necesarias para el VI de ejemplo
  1. Navegue hasta el panel frontal y ejecute la aplicación.
  2. Haga clic en el botón DETENER cuando haya terminado de ver y registrar datos. Puede descargar la solución desde la sección Descargas / Adjuntos de este documento.
II. Usando el modo de interfaz LabVIEW FPGA
El modo de interfaz LabVIEW FPGA es capaz de utilizar el FPGA integrado de CompactRIO para aumentar el rendimiento y el determinismo. Se ha creado un proyecto de ejemplo para esta aplicación usando un NI-9205 en un cRIO-9074 para registrar la temperatura, y está disponible en la sección Descargas / Adjuntos de esta página. El proyecto consta de dos VI como se muestra a continuación.

Figura 8 . Ejemplo de jerarquía del proyecto LabVIEW
El FPGA VI se comunica con el RT VI usando un DMA FIFO como se ve en el diagrama de bloques a continuación. El VI que se ejecuta en el procesador en tiempo real necesitará leer los valores del DMA FIFO. Consulte el proyecto de ejemplo para ayudar a comprender los métodos que utiliza el RT VI para leer y almacenar los valores de temperatura recibidos del FPGA integrado.

Figura 9 . Diagrama de bloques del FPGA VI

III. Uso del modo de escaneo en tiempo real de CompactRIO
Esta sección lo guiará a través de la creación de una aplicación de registro básica en CompactRIO usando el modo de escaneo. Ahora debería tener un nuevo proyecto de LabVIEW que contenga su sistema CompactRIO, incluyendo el controlador, el chasis y los módulos de E/S de la Serie C. En este tutorial usaremos un módulo de entrada de termopar NI 9211; sin embargo, el proceso se puede seguir para cualquier módulo de entrada analógica. También puede descargar la solución desde la sección Descargas / Archivos adjuntos de esta página.
Nota : NI recomienda el modo en tiempo real (NI-DAQmx) sobre el modo de escaneo en tiempo real (E/S variable).
  1. Guarde el proyecto seleccionando Archivo »Guardar en la esquina superior izquierda.
  2. Ingrese el nombre como Registro básico con modo de escaneo y haga clic en Aceptar para cerrar la ventana de diálogo.

Figura 10 . Guarde el registro básico de LabVIEW Project con el modo de escaneo
  1. Cree un VI haciendo clic derecho en el controlador CompactRIO en el proyecto y seleccionando New »VI . Guarde el VI como RT.vi. Este proyecto solo contendrá un VI, que es la aplicación LabVIEW Real-Time que se ejecuta en el controlador CompactRIO.

Figura 11 . Cree un nuevo VI debajo del controlador CompactRIO agregado recientemente
  1. Coloque una estructura de secuencia plana con tres fotogramas en su diagrama de bloques RT.vi como se muestra a continuación. El funcionamiento básico de esta aplicación incluirá tres rutinas: inicio, ejecución y apagado. Una estructura de secuencia plana es una manera fácil de hacer cumplir este orden de operación.

Figura 12 . Estructura de secuencia plana en LabVIEW
  1. Agregue un ciclo cronometrado al cuadro Ejecutar de la estructura de secuencia. Los bucles temporizados brindan la capacidad de sincronizar el código con varias bases de tiempo, incluido el motor de exploración de NI que lee y escribe E/S en modo de exploración.

Figura 13 . Estructura de secuencia plana en LabVIEW con Timed Loop
  1. Haga doble clic en el icono del reloj en el nodo de entrada izquierdo para configurar el ciclo temporizado.

Figura 14 . Abra la configuración de Bucle Temporizado haciendo doble clic en la esquina superior izquierda
 
  1. Seleccione Sincronizar con el motor de escaneo como la Fuente de Temporización de Bucle.
  2. Haga clic en Aceptar . Esto hará que el código en el ciclo temporizado se ejecute una vez, inmediatamente después de cada escaneo de E/S, asegurando que los valores de E/S utilizados en este ciclo temporizado sean los valores más recientes.

Figura 15 . Configurar el Bucle Temporizado utilizando el Motor de Escaneo como Fuente de Temporización
 
  1. Haga clic derecho en el controlador CompactRIO en el proyecto de LabVIEW y seleccione Propiedades .
  2. Seleccione Motor de Escaneo en las categorías de la izquierda e ingrese 100 ms como Periodo de Escaneo. Esto hará que todas las E/S del sistema CompactRIO se actualicen cada 100 ms (10 Hz). El Período de Publicación en Red también se puede configurar desde esta página, el cual controla la frecuencia con la que se publican los valores de E/S en la red para la supervisión y depuración remota. Haga clic en Aceptar .

Figura 16 : Ajuste el Periodo de Escaneo para controlar la frecuencia de actualización
  1. Seleccione todos los canales debajo del módulo haciendo clic en ellos y usando la tecla de mayúsculas, luego arrástrelos y suéltelos en el ciclo temporizado en su diagrama RT.vi como se muestra a continuación. Cuando usa el modo de escaneo CompactRIO, puede simplemente arrastrar y soltar las variables de  E/S del proyecto de LabVIEW al diagrama de bloques. Expanda el controlador CompactRIO, el chasis y el módulo de E/S que le gustaría registrar.

Figura 17 . Arrastre y suelte las E/S de la serie C en el Bucle Temporizado
Consejo : Use los elementos Alinear Objetos »Ejes Izquierdos y Distribuir Objetos» Compresión Vertical en la barra de herramientas de LabVIEW para organizar las variables de E/S en su diagrama.

Figura 18 . Alinear objetos usando bordes izquierdos y compresión vertical
  1. Coloque un bucle while normal en el cuadro Ejecutar debajo del bucle temporizado. Este se utilizará para la tarea de E/S del archivo. Debido a que las E/S de archivo requiere una cantidad de tiempo reducida, debe separar la tarea de adquisición de E/S y la tarea de E/S de archivo. No hacer caso de este requisito podría provocar la pérdida de datos, ya que la E/S del archivo puede tardar más que el escaneo de E/S, lo que hace que se pierda una muestra.
Para escribir los datos en el disco en el ciclo while, es necesario transferir los valores de E / S desde el ciclo temporizado utilizando un FIFO en tiempo real. Esto proporcionará un búfer entre los dos bucles. El ciclo temporizado se ejecutará, sincronizará la exploración de E/S y escribirá los nuevos valores de E / S en el búfer cada vez. Luego, el ciclo while regular leerá los datos del búfer y los escribirá en el disco. Separar la tarea de E / S y el acceso al disco de esta manera permite que su ciclo cronometrado se ejecute con un rendimiento en "tiempo real", lo que significa que siempre terminará a tiempo.

Figura 19 . Uso de bucles para asegurarse de que los datos de registro no reduzcan la velocidad de muestreo de E / S


Figura 20 . Tarea en tiempo real que accede a E / S frente a datos de registro de tareas de baja prioridad
  1. En el Proyecto LabVIEW, haga clic derecho en el Controlador CompactRIO y seleccione Nuevo »Variable .

Figura 21 . Agregar una nueva variable en el proyecto de LabVIEW
  1. Asigne un nombre al búfer de datos de la variable, seleccione Proceso único como Tipo de variable.
  2. Seleccione Arreglo de Punto Flotante como el tipo de datos. Esto creará una variable de ámbito local (sin publicación en red) que contiene una matriz de números de punto flotante de doble precisión.

Figura 22 . Usar propiedades de variable para definir tipos de datos y variables
  1. Luego seleccione RT FIFO en el menú de la izquierda.
  2. Con la categoría RT FIFO seleccionada, seleccione la casilla de verificación Habilitar RT FIFO , seleccione Multi-elemento para el tipo FIFO.
  3. Ingrese 50 para el Número de matrices e ingrese 4 para el Número de elementos (si está registrando un número de canales que no sea 4, ingrese eso en su lugar). Esto configura la variable para operar como un FIFO seguro en tiempo real, que puede servir como búfer de datos entre nuestras tareas en tiempo real y de baja prioridad. El FIFO contendrá cincuenta matrices de una dimensión, cada una de las cuales contiene cuatro números de doble precisión. Haga clic en Aceptar .

Figura 23 . Uso de propiedades de variable para habilitar RT FIFO
  1. Arrastre y suelte el búfer de datos RT FIFO en su ciclo temporizado y use una función Construir Arreglo para construir un arreglo a partir de las variables de E / S y pasarlo al RT FIFO.

Figura 24 . Arrastre y suelte el búfer de datos y colóquelo en el ciclo cronometrado
  1. Arrastre y suelte una copia adicional del búfer de datos RT FIFO en el ciclo while normal, donde leerá los datos y los registrará en el disco.
  2. Haga clic derecho en RT FIFO y seleccione Mostrar Tiempo de Espera y cablee un tiempo de espera de 100 . Esto hará que el RT FIFO espere hasta 100 ms para que lleguen nuevos datos al búfer antes de que se agote. Si hay datos presentes en el búfer, el RT FIFO devolverá inmediatamente los datos más antiguos en el búfer.

Figura 25 . Arrastre y suelte una copia adicional del búfer de datos
  1. Coloque un TDMS VI Abierto en el marco de inicio de su estructura de secuencia.
  2. Cree constantes para las entradas de ruta de archivooperación . Escriba c: \ tempdata.tdms en la ruta del archivo y seleccione crear o reemplazar para la operación. En caso de que su controlador CompactRIO esté ejecutando un sistema operativo en tiempo real diferente, elija la ruta de archivo adecuada que se muestra a continuación. Consulte Compatibilidad de controladores en tiempo real y sistemas operativos en tiempo real para obtener más información.

Figura 26 . Usando la ruta de archivo correcta dependiendo del controlador CompactRIO que se use
  1. Descárguelo aquí o arrastre y suelte el fragmento de VI a continuación desde su navegador web a su diagrama para realizar la E / S del archivo.
  2. Coloque este código en el bucle while regular y conéctelo como se muestra a continuación. Se utiliza una estructura de caso para ejecutar esta sección de código solo cuando el RT FIFO no se agota, lo que indica que se han devuelto nuevos datos desde el búfer. Luego, los datos se formatean para escribirse en el archivo TDMS y mostrarse en el gráfico de forma de onda. También se proporciona un botón de parada para el ciclo while, además de comprobar si hay errores como condición de parada.

Arrastre este fragmento de VI al diagrama de bloques de su VI


Figura 27. Código de registro sin apagado
  1. En el Proyecto LabVIEW, cree otra variable compartida haciendo clic derecho en la biblioteca existente que fue creada automáticamente y contiene la variable de búfer de datos y seleccionando Nuevo »Variable .
    1. Nombre variable stop, seleccione Proceso Único y seleccione Booleano . Seleccione la categoría RT FIFO a la izquierda.

Figura 28. Seleccione Proceso único y use Boolean como tipo de datos
  1. Seleccione Enable RT FIFO , deje elemento único seleccionado y haga clic en Aceptar . Esto crea una variable que es segura para leer en tareas que requieren desempeño en tiempo real.
  2. Coloque una copia de la variable de stop en el bucle temporizado y conéctela a la condición de parada .
  3. Coloque otra copia de la variable de stop en el ciclo while regular y escriba el resultado de la función OR como se muestra. Esto hará que el ciclo temporizado se detenga cuando se detenga el ciclo while normal.
  4. Coloque una función de cierre de TDMS en el marco de apagado y conecte la referencia de archivo y el grupo de errores a él. Además, cree un indicador desde la terminal TDMS Cierre de salida de error . Su solicitud completa debe verse como la siguiente imagen:

Figura 29. Diagrama de bloques de LabVIEW terminado
  1. Haga clic en Ejecutar en RT.vi, haga clic en Guardar para cualquier elemento no guardado y haga clic en Aceptar en cualquier cuadro de diálogo o advertencia sobre la aplicación de cambios al sistema CompactRIO. LabVIEW ahora desplegará su VI sobre Ethernet para correr embedido en el sistema CompactRIO.
  2. Una vez que el VI se despliega y comienza a funcionar, vea el panel frontal de su VI para ver los valores de E / S actuales trazados en el gráfico de forma de onda.

Figura 30 . Panel frontal de LabVIEW terminado que muestra los datos de registro
  1. Haga clic en DETENER una vez que haya terminado de ver y registrar los datos.
¡Felicidades! Ha creado exitosamente una aplicación de registro embebida con LabVIEW y CompactRIO. Para continuar aprendiendo, consulte los recursos adicionales en la página de Programación Embebida con LabVIEW y CompactRIO .
 

Accediendo a los datos registrados

Complete estos pasos para recuperar y ver los datos registrados en el sistema CompactRIO. Si no tiene un servidor FTP instalado en su sistema, CompactRIO también es compatible con WebDAV (Creación y control de versiones distribuidos en la web). Es una alternativa segura para intercambiar archivos usando un navegador web estándar. Consulte Uso de WebDAV para transferir archivos hacia y desde su objetivo en tiempo real para obtener más información.
  1. Usando el Explorador de Windows o un navegador web, navegue hasta ftp: // <dirección IP> donde <dirección IP> es la dirección IP de su sistema CompactRIO.
  2. Descargue tempdata.tdms (o como sea que haya llamado el archivo TDMS)
  3. Si tiene Microsoft Excel, puede ver archivos TDMS seleccionando la pestaña Complementos y haciendo clic en Importador TDM . La primera página del libro de trabajo contiene información de archivo y las hojas restantes contienen los datos del canal. El Importador TDM se instala con LabVIEW por defecto; sin embargo, si el Importador TDM no está presente, puede instalarlo desde aquí .

Figura 31 . Instale Importador TDM para abrir los archivos TDMS directamente en Excel
  1. Si no tiene Excel, puede ver el archivo TDMS usando el VI Visor de archivos TDMS en LabVIEW.