Usando el DAQ Assistant en NI LabWindows ™ / CVI ™

Actualizado el Dec 3, 2021

Ambiente

Software

  • LabWindows/CVI
  • Measurement & Automation Explorer (MAX)

Controlador

  • NI-DAQmx

Este documento es parte de Getting Started with NI-DAQmx Series (en inglés).

NI Getting Started with NI-DAQmx Series tiene como objetivo ayudarlo a aprender los fundamentos de programación de NI-DAQmx. A través de tutoriales en video y texto, esta serie lo llevará desde verificar la operación de su dispositivo en NI Measurement & Automation Explorer (MAX) hasta programar aplicaciones de adquisición de datos usando LabVIEW. Está destinado tanto al principiante que quiere aprender a usar el DAQ Assistant, como al usuario experimentado que desea aprovechar la funcionalidad avanzada de NI-DAQmx.

Este tutorial explica cómo usar DAQ Assistant para desarrollar e implementar rápidamente una aplicación de adquisición de datos (DAQ) en LabWindows / CVI. El DAQ Assistant es una interfaz gráfica fácil de usar para configurar tareas y canales de medición y para personalizar tiempos, disparos y escalas sin programación. Con el DAQ Assistant, puede configurar una tarea de medición para todas sus aplicaciones DAQ y luego generar código para configurar y usar la tarea en su programa de aplicación. El siguiente contenido también se encuentra en la Ayuda de DAQ Assistant .

Antes de que empieces

Para usar este tutorial, debe tener el siguiente software y hardware instalados en su sistema:

  • LabWindows / CVI 7.0 o posterior.
  • NI-DAQmx de NI-DAQ 7.0.1 o posterior.
  • Un dispositivo DAQ que es compatible con NI-DAQmx. Consulte el archivo Read me de NI-DAQ 7.x para obtener una lista de dispositivos compatibles con NI-DAQmx.


Consulte la DAQ Quick Start Guide y la documentación del dispositivo para obtener información sobre la instalación y configuración del software y el hardware.

Crear una tarea

Puede utilizar DAQ Assistant para crear rápidamente tareas DAQ. Una tarea es una colección de uno o más canales virtuales con temporización, activación y otras propiedades. Conceptualmente, una tarea representa una medida o generación que desea realizar. Puede configurar y guardar toda la información de configuración en una tarea y utilizar la tarea en una aplicación.

Para iniciar DAQ Assistant desde LabWindows / CVI, seleccione Tools »Create / Edit DAQmx Tasks . Aparece el cuadro de diálogo que se muestra en la Figura 1.


Figura 1

Tiene dos opciones al crear tareas para usar en un proyecto LabWindows / CVI.

  • MAX-based tasks (Las tareas basadas en MAX) son globales para la máquina en la que se crean y pueden ser utilizadas por otros programas en la misma máquina. Puede ver, editar y probar este tipo de tarea directamente desde MAX. Puede usar tareas basadas en MAX en múltiples proyectos, incluso aquellos que no están creados en LabWindows / CVI.
  • Project-based tasks (Las tareas basadas en proyectos) se almacenan en un proyecto. Las tareas almacenadas en el proyecto son locales para ese proyecto. Las tareas basadas en proyectos pueden ser más convenientes si necesita compartir una definición de tarea entre varios desarrolladores o almacenar la definición de tarea en un sistema de control de código fuente.


Cree una tarea basada en MAX

  1. Seleccione Create New Task in MAX en el cuadro de diálogo Crear / editar tareas de DAQmx.
  2. Haga clic en Ok para iniciar DAQ Assistant.
  3. En el siguiente cuadro de diálogo, seleccione el tipo de medición para su tarea y haga clic en Next .
  4. Seleccione los canales virtuales y haga clic en Next.
  5. Ingrese un nombre para la tarea y haga clic en Finish. El DAQ Assistant crea la tarea.
  6. Aparece el panel DAQ Assistant que se muestra en la Figura 2. En este panel, puede configurar ajustes específicos del canal, como escalado, límites de entrada y configuración de terminales. También puede configurar ajustes específicos de la tarea, como el tiempo y la activación.

Figura 2
  1. Cuando especifica las distintas configuraciones, puede probar la tarea. Haga clic en el botón Test para verificar que la tarea funcione correctamente.
  2. Haga clic en OK cuando termine. El DAQ Assistant guarda la tarea en MAX.
Para obtener más información sobre cómo configurar una tarea con DAQ Assistant, consulte DAQ Assistant Help, instalada con NI-DAQmx.

Crear una tarea basada en proyectos

  1. Seleccione Create New Task in Project en el cuadro de diálogo Create/Edit DAQmx Tasks.
  2. Haga clic en Ok para iniciar DAQ Assistant.
  3. En el siguiente cuadro de diálogo, seleccione el tipo de medición para su tarea y haga clic en Next .
  4. Seleccione los canales virtuales y haga clic en Next.
  5. Después de crear la tarea, aparece el panel DAQ Assistant que se muestra en la Figura 3. En este panel, puede configurar ajustes específicos del canal, como escalado, límites de entrada y configuración de terminales. También puede configurar ajustes específicos de la tarea, como el tiempo y la activación.
  6. Cuando especifica las distintas configuraciones, puede probar la tarea. Haga clic en el botón Test  para verificar que la tarea funcione correctamente.
  7. Especifique un nombre de tarea, cree una función de tarea y un directorio de destino. Ingrese esta información en el área del panel DAQ Assistant que se muestra en la Figura 3.
  • Task Name (Nombre de la tarea): el nombre que asocia con la tarea, así como el prefijo de los archivos .c , .h y .mxb que se crearán. Por ejemplo, use DAQTaskInProject como el nombre de la tarea.
  • Create Task Function (Crear función de tarea): el nombre de la función a la que llamará para crear y configurar la tarea mediante programación. Por ejemplo, utilice CreateDAQTaskInProject como función de tarea de creación.
  • Target Directory (Directorio de destino): el directorio donde se almacenarán los tres archivos generados.

figura 3
  1. Haga clic en Ok para generar la tarea.
El DAQ Assistant crea tres archivos para describir la tarea en LabWindows / CVI: una fuente ( .c ), un encabezado ( .h ) y una descripción de la tarea.
( .mxb ) file. LabWindows / CVI agrega automáticamente estos archivos al proyecto. Los archivos de origen y encabezado generados definen la función de creación de tareas, que contiene el código necesario para crear y configurar la tarea especificada mediante programación. El archivo de descripción de la tarea generado ( .mxb ) contiene una descripción binaria de la tarea que se utiliza cuando edita la tarea en DAQ Assistant. Al abrir el archivo .mxb , se abre el DAQ Assistant para esa tarea. Todos estos archivos están vinculados a la tarea, por lo que cualquier cambio que realice en su tarea desde DAQ Assistant se refleja automáticamente en el código generado.

Para obtener más información sobre cómo configurar una tarea con DAQ Assistant, consulte  DAQ Assistant Help, instalada con NI-DAQmx.
 

Utilice una tarea en un proyecto de LabWindows / CVI

Después de crear una tarea, puede usarla en un proyecto LabWindows / CVI.

Tareas basadas en MAX

Para usar la tarea basada en MAX, llame a DAQmxLoadTask , como se muestra en la Figura 4. El panel de funciones para DAQmxLoadTask contiene una lista de todas las tareas DAQmx basadas en MAX en su computadora. Presione <Enter> en el control Task Name en este panel de funciones para ver la lista de tareas.

#include <NIDAQmx.h>
#include <cvirte.h>

static int32 samplesPerChan;
datos float64 estáticos [1000];
static TaskHandle daqTask;


int main (int argc, char * argv [])
{
si (InitCVIRTE (0, argv, 0) == 0)
return -1; /* sin memoria */

/ * Llamada a función para cargar una tarea basada en MAX * /
DAQmxLoadTask ("MyVoltageTask", & daqTask);
DAQmxReadAnalogF64 (daqTask, DAQmx_Val_Auto, 10.0,
DAQmx_Val_GroupByChannel, datos, 1000 y samplesPerChan, 0);
DAQmxClearTask (daqTask);
return 0;
}

Figura 4
 
Project-Based Tasks Para utilizar la tarea basada en proyectos, llame a la función de creación de tareas ( CreateDAQTaskInProject en este ejemplo) declarada en el archivo de encabezado generado. También debe incluir su archivo de encabezado en su archivo de proyecto principal. Consulte la Figura 5 para ver un ejemplo.

#include <NIDAQmx.h>
#include <cvirte.h>
/ * Incluir archivo de encabezado generado * /
#include "DAQTaskInProject.h"


static int32 samplesPerChan;
datos float64 estáticos [1000];
static TaskHandle daqTask;


int main (int argc, char * argv [])
{
si (InitCVIRTE (0, argv, 0) == 0)
return -1; /* sin memoria */

/ * Llamada a función para crear una tarea basada en proyectos * /
CreateDAQTaskInProject (& daqTask);
DAQmxReadAnalogF64 (daqTask, DAQmx_Val_Auto, 10.0,
DAQmx_Val_GroupByChannel, datos, 1000 y samplesPerChan, 0);
DAQmxClearTask (daqTask);
return 0;
}

Figura 5
Tareas basadas en proyectos y MAX

Después de llamar a DAQmxLoadTask o la función de creación de tareas, agregue otras funciones necesarias para realizar las acciones que necesita. Por ejemplo, si está leyendo datos de sus canales de entrada analógicos, es posible que desee utilizar la función DAQmxReadAnalogF64.

Llame a DAQmxClearTask cuando termine con una tarea. Esta función detiene la tarea y la borra de la memoria.

Generar código de ejemplo

También puede utilizar DAQ Assistant para generar el código necesario para ejecutar la tarea.

  • Generar código de ejemplo para una tarea basada en MAX: en la ventana Source, haga clic con el botón derecho en la llamada a DAQmxLoadTask y seleccione Generate DAQ Example Code.
  • Generar código de ejemplo para una tarea basada en proyectos: en la ventana Source, haga clic con el botón derecho en la llamada a la función de creación de tareas (por ejemplo, CreateDAQTaskInProject ) y seleccione Generate DAQ Example Code.


Cuando selecciona Generate DAQ Example Code para una tarea basada en proyecto o MAX, aparece el cuadro de diálogo Generate DAQ Example Code, que se muestra en la Figura 6.


Figura 6

En el cuadro de diálogo, especifique el nombre de la función para ejecutar su tarea y el archivo que contiene el código de ejemplo generado, luego haga clic en OK. El código generado incluye archivos fuente y de encabezado que definen la función de ejecución de la tarea. LabWindows / CVI agrega automáticamente estos archivos al proyecto y modifica el archivo fuente actual para llamar a la función ejecutar tarea. Cuando se llama, la función ejecutar tarea crea mediante programación una interfaz de usuario que le permite iniciar la tarea y mostrar los datos.

La siguiente figura muestra un archivo de origen de ejemplo después de seleccionarGenerate DAQ Example Code para una tarea basada en proyectos.

#include <NIDAQmx.h>
#include <cvirte.h>
#include "DAQTaskInProject.h"
/ * Archivo de encabezado para código de ejemplo * /
#include "DAQTaskInProjectExampleCode.h"

static int32 samplesPerChan;
datos float64 estáticos [1000];
static TaskHandle daqTask;

int main (int argc, char * argv [])
{
si (InitCVIRTE (0, argv, 0) == 0)
return -1; /* sin memoria */

CreateDAQTaskInProject (& daqTask);
/ * Llamada a función para ejecutar la tarea * /
RunDAQTaskInProject (daqTask);
return 0;
}

Figura 7
 

Editar una tarea existente

Hay varias formas de iniciar DAQ Assistant para editar una tarea después de crearla. Puede editar cualquier tipo de tarea seleccionando Tools»Create/Edit DAQmx Tasks . Este comando abre el cuadro de diálogo Create/Edit DAQmx, en el que puede seleccionar la tarea que desea editar.

Puede editar tareas basadas en MAX directamente desde dentro de MAX seleccionando My System»Data Neighborhood»NI-DAQmx Tasks.

Puede editar tareas basadas en proyectos haciendo doble clic en el archivo .mxb en el árbol de proyectos en LabWindows / CVI.

Cuando termina de editar una tarea, LabWindows / CVI actualiza la tarea MAX o los archivos de configuración en el proyecto, según corresponda, con cualquier cambio que realice. Sin embargo, el código de ejemplo que ha generado no se actualiza automáticamente. Debido a que el código de ejemplo no está vinculado directamente a la tarea, si realiza alguna modificación en la tarea, debe volver a generar su código de ejemplo para que la tarea refleje los cambios que realizó.

Copiar una tarea MAX al proyecto
Puede crear una nueva tarea basada en proyectos que sea una copia de una tarea basada en MAX. En la ventana Source, haga clic con el botón derecho en la llamada a DAQmxLoadTask y seleccioneCopy DAQ Task to Project. En el cuadro de diálogo que aparece, debe especificar el nombre de la tarea, la función de creación de la tarea y el directorio de destino, tal como lo especificó en DAQ Assistant para tareas basadas en proyectos. Cuando hace clic en Ok, LabWindows / CVI genera la fuente ( .c ), el encabezado ( .h ) y el archivo de descripción de la tarea ( .mxb ) y agrega estos archivos al proyecto; reemplaza la llamada a DAQmxLoadTask con una llamada a la función de creación de nueva tarea; y agrega una declaración de inclusión para el archivo de encabezado generado.

Observe que no existe un vínculo entre la tarea MAX y la nueva tarea del proyecto que crea. Cualquier cambio que realice en la tarea MAX no se reflejará automáticamente en la nueva tarea del proyecto.

Documentación adicional

Consulte los siguientes archivos para obtener más información sobre NI-DAQmx y para obtener más información sobre la configuración de tareas con DAQ Assistant.

Guía de inicio rápido de DAQ , ubicada en Start »...» National Instruments »NI-DAQ
Ayuda de NI-DAQmx , ubicada en Start »...» National Instruments »NI-DAQ
Ayuda de DAQ Assistant , accesible en el panel derecho de DAQ Assistant
Ayuda de LabWindows / CVI , ubicada en Start»...» National Instruments »LabWindows / CVI