You are on page 1of 6

EQUIPOS ELECTRNICOS DE MEDIDA

4 GRADUADO EN INGENIERA MECNICA

SESIN 6 DE GRUPO REDUCIDO

Utilizacin de Callbacks, NI-DAQmx y mdulos NI USB-6008


desde CVI con tareas

Introduccin:

Una vez introducido el CVI, el concepto de callbacks y el control de mdulos a travs


de buses, en esta prctica se utilizar un mdulo NI USB-6008 de la propia casa National
Instruments para medir una entrada analgica. Se har tambin una prueba con un dispositivo
simulado.

Caso planteado :
Controlar un panel bsico que leer una variable conectada a un mdulo NI USB-6008
con un programa CVI, controlado por callbacks y utilizando NI-DAQmx.

Crear un panel que incluya un dial para fijar un ajuste (ste no tendr indicador, el
propio dial nos marca el valor) y un indicador que visualizar una variable analgica que
leeremos del mdulo USB-6008. Adems se incluir un led de alarma que indicar si la
variable supera al ajuste y un botn de comando para acabar.

Sesin 6:
a.- Crear un proyecto con el nombre grupoXX_CVI_6.cws

b.- Crear un panel con el nombre grupoXX_CVI_6.uir


Crear un panel similar al de la figura:

Asignarle los nombres de constante y de las callbacks donde proceda (al timer y al botn de
salir).

Pg. 1
La callback del comando de salir se generar automticamente al crear el cdigo (indicrselo
as al generarlo)

La callback del timer ser la que incorporar la lectura del mdulo y su eco al indicador as
como el proceso de comparacin.

Ajustar los rangos, colores, valores por defecto,


c.- Guardar el panel, comprobar la creacin del fichero de mismo nombre y extensin .h

Una vez asegurados de que el panel tiene cuanto vamos a necesitar, vamos a generar
automticamente el main. Para ello , desde el men Code elegimos la opcin Generate All
Code :

Elegiremos la funcin que asociamos al fin de la ejecucin (botn de salida) y si queremos


crear un proyecto nuevo o incorporarlo al que estamos. En nuestro caso, como hemos partido
de cero, bastar con incorporarlo al que ya tenemos.

Se nos debe de crear el fichero .c con las definiciones y funciones callback respectivas a los
controles que indicamos en el uir. Incorporar los ficheros .uir, .c y .h al proyecto.

Finalmente deberemos definir el contenido de las funciones call-back que se han creado
vacas. En este caso slo tendremos que generar la callback que lea del mdulo la entrada
analgica y lo refleje en el indicador del panel. Lo haremos pautados por el timer. En la
misma incluiremos la comparacin con el ajuste (virtual) para actuar sobre el led de alarma.

La funcin de leer del mdulo deberemos generarla utilizando el NI-DAQmx (ver libreras)
pero previamente hemos de crear la(s) tarea(s) que sern utilizadas por estas.

Pg. 2
d.- Creacin de tareas: (ver gua de clase)

Entraremos en el asistente donde iremos siguiendo los pasos (la vamos a crear desde CVI,
tambin podamos hacerlo antes directamente desde MAX) (ver gua de clase):

Creacin de la(s) tarea(s) que deseamos instalar (en nuestro caso una de lectura de entrada
analgica en el USB-6008)

Seleccionaremos crearla nueva nueva en el proyecto (o editar una que ya tuviramos de


antes):

Se inicializar el asistente:

Y entraremos en l:

Pg. 3
Seguiremos el asistente como se ha visto en clase dndole nombre y configurando la accin a
realizar, parmetros, e, incluso, probndola antes de terminar de crearla:

Dispositivo y canal a leer


Nombre de la tarea
Configuracin de parmetros (rango, modo, muestreo, )

e.- Utilizacin de las funciones asociadas a las tareas creadas

A partir de aqu, podremos incorporar las funciones de la librera NI-DAQmx para acceder a
esas tareas: (la pantalla interactiva ser de mucha utilidad)
Pg. 4
Las acciones y funciones mnimas a incorporar son:

Declarar una variable tipo TaskHandle (es un tipo de variable definido en la


librera DAQmx para utilizarla con las funciones que manejan las tareas)
Cargar la tarea (DAQmxLoadTask)
Realizar la accin (por. ej. leer dato analgico) (DAQmxReadAnalogScalarF64)
Cerrar la tarea cuando ya no la vayamos a utilizar ms. (DAQmxClearTask)

(Es importante que la accin coincida con el objeto de la creacin de la tarea, es decir, no
podemos usar una funcin de actuar sobre una salida digital si la tarea la creamos para leer de
una entrada analgica podra ocurrir que el compilador no diera error si la sintaxis es
correcta pero luego tendramos error en ejecucin.)

f.- Habr que completar el resto (declaraciones de variables, )

En clase previa haremos un ejemplo que incluye todos estos pasos.


Finalmente, depurar y comprobar el funcionamiento del programa.

g.- Dispositivos simulados: Como hemos visto en clase, desde el MAX se puede crear un
dispositivo simulado sobre el que podemos actuar como si estuviera fsicamente. (Ver gua de
clase)

Utilizando el MAX crear un dispositivo simulado NI USB-9201


(El MAX puede no tener simulador del USB-6008, segn versin, por eso cogemos
otro similar. Si el que utilicemos lo tiene podemos usar el USB-6008.)

Sobre el mismo crear una tarea para leer su canal 0.

En el programa de la sesin, cambiar la lectura del USB-6008 por la lectura en ste


mdulo simulado.

Realizar las modificaciones necesarias.

OBSERVACIONES / COMENTARIOS:
Una vez cogida la soltura con este sistema resulta inmediato crear una tarea (por ejemplo
desde MAX) para activar un led conectado a una salida digital del mdulo.

LA ENTREGA DE RESULTADO SE HAR EN EL ANEXO.

Adems se subir a CV un zip con el nombre grupoXX_CVI_6.zip con los ficheros uir, c y
h. finales.

Pg. 5
ANEXO RESPUESTAS:
GRUPO: ___________ FECHA: _______________________
ALUMNO 1: ___________________ ALUMNO2:_________________________

EQUIPOS ELECTRNICOS DE MEDIDA


4 GRADUADO EN INGENIERA MECNICA

SESIN 6 DE GRUPO REDUCIDO

Utilizacin de Callbacks, NI-DAQmx y mdulos NI USB-6008


desde CVI con tareas

Cuestin 1: Porqu hay que cargar una tarea antes de hacer uso de ella?

Cuestin 2: Porqu hay que cerrarla al final del programa?

Cuestin 3: Si el dispositivo simulado en la ltima parte no est fsicamente, qu valor


leemos cuando accedemos a l? (ver en el Help de CVI Reading and Writing Data with NI-
DAQmx Simulated Devices)

Pg. 6