You are on page 1of 25

Conecte Seales de Salida Analgica a un Dispositivo de

Adquisicin de Datos (DAQ)


Imprimir


Contenido de esta Seccin
Ubicar el Pin-out de su Dispositivo DAQ
Configurar una Salida de Voltaje Analgico
Conectar una Seal de Voltaje Analgico a su Dispositivo
Probar la Seal
Antes de Empezar
Regresar al inicio


Este documento proporciona instrucciones paso a paso para cablear y configurar su dispositivo de adquisicin
de datos para generar seales de salida analgicas. Antes de comenzar a usar su hardware de adquisicin de
datos, debe instalar su entorno de desarrollo de aplicacin (ADE) y el software controlador NI-DAQmx.
Consulte el documento Instalar NI LabVIEW y NI-DAQmx para obtener ms informacin.
Vea descripciones detalladas
Ubicar el Pin-out de su Dispositivo DAQ
Regresar al inicio


Antes de conectar cualquier seal, ubique el pin-out de su dispositivo.
1. Abra NI Measurement & Automation Explorer (MAX) y despliegue Devices and Interfaces.
2. Haga clic con botn derecho en el nombre de su dispositivo y seleccione Device Pinouts.

Figura 1. Ayuda para Terminales de Dispositivo
Los siguientes tipos de terminales corresponden con generacin de voltaje analgico:
AO x(+/-): Salida Analgica Generalmente va seguida por un nmero que corresponde a un nmero de
canal. Por ejemplo, si su dispositivo DAQ tiene 8 canales de salida analgica, su diagrama de pinout muestra
terminales positivas (+) y negativas (-) para AI 0 hasta AI 7 ubicadas en el conector.
AO GND: Tierra Analgica Esta terminal es la referencia a tierra para canales AO. En algunos dispositivos
DAQ multifuncin AO GND debe ser conectada de manera elctrica con AI GND y D GND.
COM: Comn Terminal a tierra comn para todos los canales AO. Esta tierra puede estar o no estar aislada
a tierra, dependiendo de su dispositivo.
APFI x: Canales de Interfaz de Funcin Programable Analgica Cada seal APFI puede ser usada como
entradas de referencia AO externas para AOx o como entrada de disparo analgico. APFIx son referenciadas
a AO GND cuando son usadas como entradas de desfase o referencia AO analgica. APFIxson refernciadas
a AO GND cuando son usadas como entradas de desfase o referencia AO analgica. Estas funciones no
estn disponibles en todos los dispositivos.
AO EXT REF Entrada de referencia externa AO. (Esta es la misma APFI en algunos dispositivos.)
Configurar una Salida de Voltaje Analgico
Regresar al inicio


Puede usar NI Measurement & Automation Explorer (MAX) para verificar rpidamente la precisin de la
configuracin de su sistema de medias. Al usar un NI-DAQmx Global Virtual Channel puede configurar una
salida analgica sin programacin. Un canal virtual es un concepto de la arquitectura del controlador NI-
DAQmx usado para representar las configuraciones de propiedades del dispositivo que pueden incluir
nombre, un canal fsico, conexiones de terminal, el tipo de medida o generacin e informacin de escala.
Siga estos pasos para comenzar:
3. Con el NI Measurement & Automation Explorer abierto, seleccione Data Neighborhood y haga clic en Create
New.
4. Seleccione NI-DAQmx Global Virtual Channel y haga clic en Next.
5. Seleccione Generate Signals Analog Output Voltage

Figura 2. Crear un Canal Virtual NI-DAQmx
6. Seleccione ao0 o cualquier canal fsico que quiera conectar a su salida de voltaje. Un canal fsico es una
terminal o pin en el cual usted puede medir o generar una seal analgica o digital.

Figura 3. Canales Fsicos del Dispositivo
7. Haga clic en Next y proporcione un nombre para el canal virtual global o deje el nombre predeterminado.
8. Haga clic en Finish y debe ver la siguiente pantalla en MAX:

Figura 4. Instalar un Canal de Salida de Voltaje en MAX
9. En la seccin Settings, escriba los valores mximos y mnimos de voltaje que espera generar desde su
medida (-10 a10 V son predeterminados).
Conectar una Seal de Voltaje Analgico a su Dispositivo
Regresar al inicio


Las conexiones de seal varan dependiendo de su dispositivo, bloque conector y mdulos de
acondicionamiento de seales. La siguiente figura muestra cmo realizar conexiones de salida analgica para
un dispositivo tpico.

Figura 5. Conexiones de Salida Analgica
10. Conecte el polo positivo de la carga a la terminal AOx. Conecte la tierra de la carga a una terminal COM o AO
GND.
Probar la Seal
Regresar al inicio


Los canales virtuales globales NI-DAQmx le permiten probar sus salidas.
11. Con MAX an abierto, proporcione un valor en el campo numrico entre su voltaje mximo y mnimo que
especific.
12. Haga clic en Apply Value to Channel. Debera ver que el valor del canal aparece en la tabla. (El nombre del
canal predeterminado es MyVoltageOutChannel.)

Figura 6. Actualizar un Canal Virtual en MAX
13. Este procedimiento actualizar su canal AO con un valor de voltaje DC. Debe conectar un DMM porttil u otro
dispositivo DAQ a su canal AO para verificar el voltaje.
Tambin tiene la opcin de guardar su NI-DAQmx Global Virtual Channel si desea consultar esta pantalla de
configuracin en un futuro.



NI-DAQmx
1. NI-DAQmx: Reduzca Tiempo de Desarrollo y Mejore el Rendimiento
Desde el lanzamiento de NI-DAQmx, los usuarios del hardware de adquisicin de datos (DAQ) de National
Instruments han aprovechado la diferentes caractersticas diseadas para ahorrar tiempo de desarrollo y para
mejorar el rendimiento de sus aplicaciones de adquisicin de datos.

Una caracterstica que ahorra una cantidad considerable de tiempo de desarrollo es la Interfaz de
Programacin de Aplicaciones (API) de NI-DAQmx, la cual es la misma tanto en toda la funcionalidad del
dispositivo y como en las familias de dispositivos. Esto significa que toda la funcionalidad de un dispositivo
multifuncin es programada con el mismo juego de funciones (entrada analgica, salida analgica, E/S digital
y contadores). Adems, un dispositivo de E/S digital y un dispositivo de salida analgica son programados
usando este mismo juego de funciones. En NI LabVIEW, esto es posible gracias al polimorfismo. Un VI
polimrfico acepta mltiples tipos de datos para una o ms terminales de entrada y/o salida. El NI-DAQmx API
tambin es consistente en todos sus entornos de programacin aplicables. Usted necesita aprender cmo
usar solamente un juego de funciones para poder programar la mayora del hardware de adquisicin de datos
de National Instruments en mltiples entornos de programacin.

Otra caracterstica de NI-DAQmx que mejora su experiencia de desarrollo es el DAQ Assistant. Esta
herramienta le ayuda a crear sus aplicaciones sin programacin a travs de una interfaz grfica para
configurar tareas simples y complejas de adquisicin de datos. Por otra, la sincronizacin, un proceso que
generalmente es difcil de implementar debido a las seales de disparo y/o reloj deben ser enrutadas
manualmente, es fcil con NI-DAQmx, el cual realiza automticamente enrutado de seales entre las
diferentes reas funcionales de un solo dispositivo y entre mltiples dispositivos.

Las aplicaciones de adquisicin de datos que usted construye usando NI-DAQmx se benefician de una
arquitectura diseada para maximizar el rendimiento. Esto comienza con un modelo de estado eficiente que
elimina reconfiguracin innecesaria. Al eliminar estos gastos, se optimizan la configuracin y la adquisicin.
Adems, usted puede alcanzar velocidades de E/S de un solo punto mayores de 50 kS/s. Este nivel de
rendimiento es posible debido a los registros mapeados a memoria.

Otra caracterstica importante de la arquitectura NI-DAQmx es Measurement Multithreading. Ya que NI-
DAQmx es de mltiples hilos, mltiples operaciones de adquisicin de datos pueden ocurrir simultneamente,
mejorando enormemente el rendimiento de sus aplicaciones que contienen varias operaciones. Tambin
simplifica en gran medida dichas aplicaciones.
Para comenzar a aprovechar estos beneficios, usted solamente necesita aprender algunas funciones. De
hecho, 10 funciones de NI-DAQmx ofrecen la funcionalidad de resolver el 80% de las aplicaciones de
adquisicin. Estas funciones se describen en detalle para ayudarle a comprender su funcionalidad y los tipos
de aplicaciones en las cuales son usados.

NOTA: Los ejemplos referenciados en este documento estn disponibles en las siguientes ubicaciones.
LabVIEW HelpFind ExamplesHardware Input and OutputDAQmx
LabWindows/CVI HelpFind ExamplesHardware Input and OutputDAQmx
.NET C:\Documents and Settings\All Users\Documents\National Instruments\NI-DAQ\Examples\DotNET2.0 or
C:\Program Files\National Instruments\MeasurementStudioVS2005\DotNET\Examples
Regresar al Inicio
2. DAQ Assistant


ToolsCreate/Edit DAQmx Tasks [CVI]
ProjectAdd New ItemDAQmx Task [.NET]






DAQ Assistant es una interfaz grfica para crear, editar y ejecutar de forma interactiva canales virtuales y
tareas NI-DAQmx. Un canal virtual NI-DAQmx consiste de un canal fsico en un dispositivo DAQ y la
informacin de configuracin para este canal fsico, como rango de entrada y escala personalizada. Una tarea
NI-DAQmx es una coleccin de canales virtuales, informacin de temporizacin, disparos y otras propiedades
relacionadas con la adquisicin o generacin. En la siguiente figura, el DAQ Assistant est configurado para
realizar una medida de galgas limitada.


Los siguientes documentos describen el uso del DAQ Assistant en NI LabVIEW, NI LabWindows/CVI y .NET:

Tutorial sobre NI-DAQmx Express VI
Usar el DAQ Assistant en NI LabWindows/CVI
Usar el DAQ Assistant en NI Measurement Studio

DAQ Assistant tambin puede generar cdigo para configurar y/o realizar la adquisicin o la generacin
especificada. Este procedimiento en NI LabVIEW se describe en la Ayuda de DAQ Assistant y en el
documento Usar el DAQ Assistant para Generar Automticamente Cdigo LabVIEW. La siguiente figura
muestra una instancia del DAQ Assistant y la configuracin generada automticamente que resulta y el cdigo
ejemplo de NI LabVIEW.


Ciertas aplicaciones de adquisicin de datos requieren ms flexibilidad y/o rendimiento que la que ofrece el
DAQ Assistant. Estas aplicaciones requieren las funciones NI-DAQmx simples y potentes, que se describen a
continuacin.
Regresar al Inicio
3. NI-DAQmx Create Virtual Channel


LibraryNI-DAQmxChannel
Creation/Configuration [CVI]

Task.Channel.CreateChannel Property [.NET]







La funcin NI-DAQmx Create Virtual Channel crea un canal virtual y lo aade a una tarea. Tambin puede ser
usada para crear mltiples canales virtuales y aadirlos a una tarea. Cuando una tarea no est especificada,
la funcin crea una tarea. La funcin NI-DAQmx Create Virtual Channel tiene numerosas instancias. Estas
instancias corresponden al tipo de medida o generacin especfica que realiza el canal virtual.
Crear un Canal en NI LabVIEW
La siguiente figura muestra cuatro ejemplos de diferentes instancias del NI-DAQmx Create Virtual Channel VI.


Las entradas de la funcin NI-DAQmx Create Virtual Channel difieren para cada instancia de la funcin. Sin
embargo, ciertas entradas son comunes para la mayora, sino todas, las instancias de la funcin. Por ejemplo,
se requiere una entrada para especificar los canales fsicos (entrada analgica y salida
analgica), lneas (digitales) o contador que usarn los canales virtuales. Adems, las operaciones de
entrada analgica, salida analgica y contador usan entradas de valor mnimo y valor mximo para
configurar y optimizar las medidas y generaciones en base a los valores mnimos y mximos esperados de las
seales. Sin embargo, una escala personalizada puede ser aplicada a varios tipos de canales virtuales. En el
siguiente diagrama de bloques de NI LabVIEW, el NI-DAQmx Create Virtual Channel VI es usado para crear
un canal virtual de termopar.

Crear un Canal en .NET
La mayora de las clases en la biblioteca NI-DAQmx .NET no puede ser directamente ejemplificado. Estas
clases son usadas como sub-objetos de la clase Task.
Estas clases contienen propiedades que son especficas de un tipo de canal en particular. Por ejemplo, las
propiedades comoCount solamente son aplicables a contadores y solamente estn disponibles en las
clases CIChannel y COChannel. Usted puede asociar los siguientes tipos de canales con una Task en la
biblioteca de clase NI-DAQmx .NET:
Canales de entrada analgicaclase AIChannel
Canales de salida analgicaclaseAOChannel
Canales de entrada digitalclase DIChannel
Canales de salida digitalclase DOChannel
Canales de entrada de contadorclase CIChannel
Canales de salida de contadorclaseCOChannel
La clase Task tiene una propiedad de coleccin de canales para cada uno de los seis tipos de canales
AIChannels, AOChannels,DIChannels, DOChannels, CIChannels y COChannels. Para crear un canal, usted
puede usar uno de los varios mtodos para crear canales en las colecciones de canales.
Despus de ejemplificar un nuevo objeto Task, crear y asignar un objeto AIChannel se realiza al llamar la
funcin adecuada en la clase Channel. El siguiente snippet crea un simple canal de voltaje de entrada
analgica:
analogInTask = new Task();

AIChannel myChannel;

myChannel = analogInTask.AIChannels.CreateVoltageChannel(

"dev1/ai1", //The physical name of the channel

"myChannel", //The name to associate with this channel

AITerminalConfiguration.Differential, //Differential wiring

-10, //10v minimum

10, //10v maximum

AIVoltageUnits.Volts //Use volts
);
Crear una Tarea en C/C++
Use la funcin DAQmxCreateTask() para crear una tarea y DAQmxCreateAIVoltageChan() para crear un
canal de voltaje de entrada analgica. Para informacin sobre crear canales de diferentes tipos de medidas,
vea la Ayuda de NI-DAQmx Referencia C. A continuacin un snippet de cmo usar las dos funciones:
TaskHandle taskHandle=0;
char chan[256] = "Dev1/ai0";
float64 min = -10, max = 10;
DAQmxCreateTask("",&taskHandle);

DAQmxCreateAIVoltageChan(taskHandle ,chan ,"", DAQmx_Val_Cfg_Default, min, max, DAQmx_Val_Volts,
NULL);
Ejemplos para Examinar:
LabVIEW Escriba Dig Port.vi
Cont Acq Thermocouple Samples-Int Clk.vi
CVI Escriba Dig Port
Cont Thrmcpl Samples-Int Clk
.NET WriteDigPort
ContAcqThermocoupleSamples_IntClk
Regresar al Inicio
4. NI-DAQmx Trigger

LibraryNI-DAQmxTriggering [CVI]

Task.Triggers Property [.NET]



La funcin NI-DAQmx Trigger configura un disparo para realizar una especificacin. Las acciones ms usadas
son un disparo en estrella y un disparo de referencia. Un disparo en estrella inicia una adquisicin o
generacin. Un disparo en estrella establece la ubicacin, en un juego de muestras adquiridas, dnde terminar
los datos de pre-disparo y comienzan los datos de post-disparo. Estos dos disparos pueden ser configurados
para ocurrir en un borde digital, un borde analgico o cuando una seal analgica entra o deja una ventana.
Crear un Disparo en NI LabVIEW
En el siguiente diagrama de bloques de NI LabVIEW, son configurados un disparo en estrella y un disparo de
referencia, usando el NI-DAQmx Trigger VI, para ocurrir en bordes digitales para una operacin de entrada
analgica.

[+] Ampliar Imagen

Varias aplicaciones de adquisicin de datos requieren sincronizacin de diferentes reas funcionales de un
solo dispositivo (por ejemplo, salida analgica y contadores). Otros requieren que mltiples dispositivos sean
sincronizados. Para lograr esta sincronizacin, las seales de disparo deben ser enrutadas entre las
diferentes reas funcionales de un solo dispositivo y entre mltiples dispositivos. NI-DAQmx realiza este
enrutado automticamente. Al usar la funcin NI-DAQmx Trigger, todas las seales de disparo vlidas estn
disponibles como la entrada fuente a la funcin. Por ejemplo, en el siguiente NI-DAQmx Trigger VI, la seal
de disparo en estrella para Device 2 est disponible como la fuente del disparo en estrella para Device 1 sin
que ningn enrutado explcito sea realizado.


Crear un Disparo en .NET
Despus de crear un objeto Task en un Canal, usted puede aadir un disparo a la tarea al llamar los mtodos
en la coleccin de disparos Task. El siguiente snippet de cdigo crea un Disparo en Estrella de Borde Digital:
analogInTask = new Task();

DigitalEdgeStartTriggerEdge triggerEdge = DigitalEdgeStartTriggerEdge.Rising;
analogInTask.AIChannels.CreateVoltageChannel( ... );
analogInTask.Triggers.StartTrigger.ConfigureDigitalEdgeTrigger("PFI0", triggerEdge);
En base a los parmetros enviados a la funcin ConfigureDigitalEdgeTrigger el dispositivo se ver en una
lnea interna o externa para un borde digital de incremento o cada antes de comenzar a adquirir datos. El
snippet de arriba configura el dispositivo para verse en PFO 0 para un disparo de borde digital de incremento.
Crear un Disparo en C/C++
Use la funcin DAQmxCfgDigEdgeStartTrig() para crear un disparo en estrella de borde digital. Para
informacin sobre crear diferentes disparos, vea la Ayuda de NI-DAQmx Referencia C. A continuacin est un
snippet que muestra cmo usar la funcin para un disparo en estrella digital que viene en PFI0 y que busca un
borde de incremento en esa lnea.
char startTrigger[256] = "Dev1/PFI0";
int startEdge = 0; // rising edge
DAQmxCreateTask("",&taskHandle));

DAQmxCreateAIVoltageChan(taskHandle, chan, "", DAQmx_Val_Cfg_Default, min, max, DAQmx_Val_Volts,
NULL);

DAQmxCfgDigEdgeStartTrig(taskHandle, startTrigger, startEdge);
El documento Caractersticas de Temporizacin y Sincronizacin de NI-DAQmx contiene informacin adicional
referente al uso de la funcin NI-DAQmx Trigger para realizar sincronizacin con NI-DAQmx.

Ejemplos para Examinar:
LabVIEW Acq&Graph Voltage-Int Clk-Dig Start&Ref.vi
Cont Acq&Graph Voltage-Int Clk-Analog Start.vi
CVI Acq-Int Clk-Dig Start&Ref
Cont Acq-Int Clk-Anlg Start
.NET AcqVoltageSamples_IntClkDigStartAndRef
ContAcqVoltageSamples_IntClkAnalogStart
Regresar al Inicio
5. NI-DAQmx Timing

LibraryNI-DAQmxTiming [CVI]

Task.Timing Property [.NET]







La funcin NI-DAQmx Timing configura la temporizacin para operaciones de adquisicin de datos
temporizadas por hardware. Esto incluye especificar si la operacin ser continua o limitada, seleccionar el
nmero de muestreos para adquirir o generar para operaciones limitadas y crear un bfer cuando sea
necesario.

Para operaciones que requieren temporizacin (entrada analgica, salida analgica y contador), la
instancia Sample Clock de la funcin NI-DAQmx Timing establece la fuente del reloj de muestreo, el cual
puede ser una fuente interna o externa y su velocidad. El reloj de muestreo controla la velocidad a la cual los
muestreos son adquiridos o generados. Cada pulso del reloj inicia la adquisicin o generacin de un muestreo
para cada canal virtual incluido en la tarea.

Configurar Temporizacin de Tareas en NI LabVIEW
El siguiente diagrama de bloques de NI LabVIEW demuestra el uso de la instancia del Reloj de Muestreo del
NI-DAQmx Timing VI para configurar una generacin de salida analgica continua con un reloj de muestreo
externo.

[+] Ampliar Imagen

Para lograr sincronizacin en aplicaciones de adquisicin de datos, as como las seales de disparo deben
estar enrutadas entre las diferentes reas funcionales de un solo dispositivo y entre mltiples dispositivos, las
seales de temporizacin tambin deben estar enrutadas de la misma manera. NI-DAQmx tambin realiza
este enrutado automticamente. Todas las seales de temporizacin estn disponibles como la
entrada fuente a la funcin NI-DAQmx Timing. Por ejemplo, en el siguiente DAQmx Timing VI, la seal de
reloj de muestreo de salida analgica del dispositivo est disponible como la fuente del reloj de muestreo para
los canales de entrada analgica, sin que ningn enrutado explcito sea realizado.


El documento Caractersticas de Temporizacin y Sincronizacin de NI-DAQmx contiene informacin adicional
referente al uso de la funcin NI-DAQmx Timing para realizar sincronizacin con NI-DAQmx.

La mayora de las operaciones de contador no requieren temporizacin de muestreo ya que la seal medida
ofrece la temporizacin. La instancia Implicit de la funcin NI-DAQmx Timing debe ser usada para estas
aplicaciones. En el siguiente diagrama de bloques de NI LabVIEW, la instancia implcita del NI-DAQmx Timing
VI es usada para configurar una adquisicin de ancho de pulso a bfer para ser limitada con un nmero
especfico de muestreos.


Configurar Temporizacin de Tareas en .NET
Para establecer la fuente del reloj de muestreo, la velocidad del reloj de muestreo y el nmero de muestreos a
adquirir o generar usan la funcin Channel.Timing.ConfigureSampleClock(). El siguiente snippet de cdigo
crea una adquisicin continua basada en un reloj de muestreo externo conectado a PFI 0 en el dispositivo.
analogInTask = new Task();
analogInTask.AIChannels.CreateVoltageChannel( ... );
analogInTask.Timing.ConfigureSampleClock(
"/Dev1/PFI0", // external clock source line or use "" for internal clock
10000, // expected rate of external clock or actual rate of internal clock
SampleClockActiveEdge.Rising, // acquire on rising or falling edge of ticks
SampleQuantityMode.ContinuousSamples, // continuous or finite samples
1000 // number of finite samples to acquire or used for buffer size if continuous
);
Configurar Temporizacin de Tareas en C/C++
Use la funcin DAQmxCfgSampClkTiming para configurar temporizacin de tareas en C o C++. El siguiente
snippet de cdigo muestra su uso para un reloj interno que se ejecuta a 10000 hz.
char clockSource[256] = "";
float64 rate = 10000;
DAQmxCfgSampClkTiming(taskHandle, clockSource, rate, DAQmx_Val_Rising, DAQmx_Val_ContSamps,
1000);
Ciertos dispositivos de adquisicin de datos emplean protocolo de sincronizacin como la temporizacin de
sus operaciones de E/S digital. El Protocolo de Sincronizacin utiliza un intercambio de seales de
temporizacin conocidas con un dispositivo externo para transferir cada muestreo. La
instancia Handshaking de la funcin NI-DAQmx Timing configura la temporizacin de protocolo de
sincronizacin para operaciones de E/S digital.

Ejemplos para Examinar:
LabVIEW Cont Gen Voltage Wfm-Ext Clk.vi
Meas Buffered Semi-Period-Finite.vi
CVI Cont Gen Volt Wfm-Ext Clk
Buff Semi-Period-Finite
.NET ContGenVoltageWfm_ExtClk
MeasBuffered_SemiPeriodFinite
Regresar al Inicio
6. NI-DAQmx Start Task

LibraryNI-DAQmxTask Configuration/ControlStart
Task [CVI]

Task.Start Method [.NET]


Como se mencion en la Introduccin, el modelo de estado usado por NI-DAQmx elimina reconfiguracin
innecesaria para obtener un alto nivel de eficiencia e incrementar el rendimiento. Este modelo de estado
consiste de cinco estados en los cuales puede residir una tarea. Informacin detallada referente a cada uno
de estos estados est disponible en la Ayuda de NI-DAQmx en Key NI-DAQmx ConceptsTasksTask
State Model.

La funcin NI-DAQmx Start Task transforma explcitamente una tarea al estado de ejecucin. En el estado de
ejecucin, la tarea realiza la adquisicin o generacin especificada. Una tarea ser transformada
implcitamente al estado de ejecucin o iniciada automticamente, si no es usada la funcin NI-DAQmx Start
Task cuabdi la funcin NI-DAQmx Read se ejecuta. Esta transicin implcita tambin ocurre si la funcin NI-
DAQmx Start Task no es usada y la funcin NI-DAQmx Write se ejecuta con su
entradaautomtica especificada de acuerdo a esto.

Aunque no siempre se requiere, es preferible usar la funcin NI-DAQmx Start Task para iniciar explcitamente
una tarea que involucra una adquisicin o generacin temporizada por hardware. Adems, si la funcin NI-
DAQmx Read o la funcin NI-DAQmx Write sern ejecutadas varias veces, como en un ciclo, la funcin NI-
DAQmx Start Task tambin debe ser usada. De otra manera, el rendimiento de la tarea ser reducido debido
a que ser iniciada y detenida repetidamente. Informacin adicional que describe cuando usar la funcin NI-
DAQmx Start Task est disponible en la Ayuda NI-DAQmx en Key NI-DAQmx ConceptsTasks Explicitly
Starting a Task.

Iniciar una Tarea en NI LabVIEW
El siguiente diagrama de bloques de NI LabVIEW demuestra una situacin donde la funcin NI-DAQmx Start
no necesita ser usada ya que la generacin de salida analgica solamente consiste de un solo muestreo
temporizado por software.


Por el contrario, el siguiente diagrama de bloques de NI LabVIEW demuestra una situacin donde la funcin
NI-DAQmx Start debera ser usada ya que la funcin NI-DAQmx Read es ejecutada varias veces para lectura
desde el contador.

Iniciar una Tarea en .NET
Para iniciar una tarea, use la funcin Start() en el objeto Task. El siguiente snippet de cdigo muestra el uso
de la funcin Start().
analogInTask = new Task();
analogInTask.AIChannels.CreateVoltageChannel( ... );
analogInTask.Timing.ConfigureSampleClock( ... );
analogInTask.Start();
Iniciar una Tarea en C/C++
Para iniciar una tarea use la funcin DAQmxStartTask(). Un snippet de cdigo a continuacin.
DAQmxStartTask(taskHandle);
Ejemplos para Examinar:
LabVIEW Gen Dig Pulse Train-Continuous.vi
Cont Acq 0-20mA Current Samples-Int Clk.vi
CVI Dig Pulse Train-Cont
Cont 0-20mA Samps-Int Clk
.NET GenDigPulseTrain_Continuous
ContAcq0_20mACurrentSamples_IntClk
Regresar al Inicio
7. NI-DAQmx Read

LibraryNI-DAQmxRead Functions [CVI]

ChannelReader Class [.NET]



La funcin NI-DAQmx Read lee muestreos desde la tarea de adquisicin especificada. Las diferentes
instancias de la funcin toman en consideracin el tipo de adquisicin (analgica, digital o contador), el
nmero de canales virtuales, el nmero de muestreos y el tipo de datos que sern seleccionados. Una vez
que el nmero de muestreos ha sido transferido desde el FIFO en la tarjeta DAQ al Bfer de PC en RAM, la
funcin NI-DAQmx Read mueve los muestreos desde le Bfer de PC a la Memoria del Entorno de Desarrollo
de Aplicaciones (ADE).
Leer Datos en NI LabVIEW
Las siguientes figuras muestran cuatro ejemplos de diferentes instancias del NI-DAQmx Read VI.


Las instancias de la funcin NI-DAQmx Read que son capaces de leer mltiples muestreos incluyen una
entrada para especificar elnmero de muestreos por canal para leer cuando la funcin se ejecuta. Para
adquisiciones limitadas, al especificar un nmero de muestreos por canal de -1, la funcin espera todos los
muestreos solicitados para ser adquiridos y despus lee estos muestreos. Especificar un nmero de
muestreos por canal de -1 para una adquisicin continua da como resultado todos los muestreos que estn
disponibles en el bfer cuando la funcin se ejecuta. En el siguiente diagrama de bloques de NI LabVIEW, el
NI-DAQmx Read VI ha sido configurado para leer mltiples muestreos desde mltiples canales virtuales de
entrada analgica y regresa los datos como formas de onda. Adems, ya que la entrada del nmero de
muestreos por canal ha sido cableada a un valor constante de 10, cada vez que el VI lo ejecuta leer 10
muestreos desde cada canal virtual.

[+] Ampliar Imagen
Leer Datos en .NET
Para leer con la biblioteca NI-DAQmx .NET, use el lector y los objetos de transferencia. Este patrn de
programacin es similar al patrn usado a en todo el .NET Framework para E/S de archivo y red.
La clase DaqStream tiene propiedades relacionadas con E/S, como CurrentReadPosition y mtodos para E/S
original. Para obtener una instancia de la clase DaqStream que corresponda a una Task en particular, use la
propiedad Stream. Usted no puede ejemplificar una instancia de la clase DaqStream directamente.
Para realizar una lectura en la biblioteca NI-DAQmx, cree una instancia de un lector y pase una instancia de la
clase DaqStream en el constructor. Despus llame un mtodo en la clase del lector y lea los datos, como se
muestra en el siguiente snippet:
analogInTask = new Task();
analogInTask.AIChannels.CreateVoltageChannel( ... );
//Create the reader and attach it to the stream
AnalogSingleChannelReader reader = new AnalogSingleChannelReader(analogInTask.Stream);

//Perform the read
double[] data = reader.ReadMultiSample(100);
Lectura de datos en C/C++
Use la funcin DAQmxReadAnalogF64() para leer datos analgicos desde una tarea de entrada analgica en
C o C++. Para funciones de lectura adicionales, vea la Ayuda de NI-DAQmx Referencia C. Un snippet de
cdigo lee 1000 muestras desde un solo canal.
int numRead = 0;
DAQmxReadAnalogF64(taskHandle, 1000, 10.0, DAQmx_Val_GroupByScanNumber, data, 1000, &numRead,
NULL);
Ejemplos para Examinar:
LabVIEW Acq One Sample.vi
Read Dig Chan.vi
CVI One Sample
Read Dig Chan
.NET AcqOneVoltageSample
ReadDigChan
Regresar al Inicio
8. NI-DAQmx Write

LibraryNI-DAQmxWrite Functions
[CVI]

ChannelWriter Class [.NET]




La funcin NI-DAQmx Write escribe muestreos desde la tarea de generacin especificada. Las diferentes
instancias de la funcin toman en consideracin el tipo de generacin (analgica o digital), el nmero de
canales virtuales, el nmero de muestreos y el tipo de datos que sern seleccionados. La funcin NI-DAQmx
Write mueve muestreos desde la Memoria del Entorno de Desarrollo de Aplicaciones (ADE) al Bfer de PC en
RAM. Estos muestreos son transferidos desde el Bfer de PC al FIFO en la tarjeta DAQ para ser generados.
Cada instancia de la funcin NI-DAQmx Write tiene una entrada de inicio automtico para determinar si la
funcin iniciar la tarea implcitamente si no ha sido iniciada explcitamente. Como se mencion anteriormente
en la seccin NI-DAQmx Start Task de este documento, la funcin NI-DAQmx Start Task debe ser usada para
iniciar explcitamente una tarea de generacin que usa temporizacin de hardware. Tambin debe ser usada
para incrementar el rendimiento si la funcin NI-DAQmx Write ser ejecutada varias veces.
Escribir Datos en NI LabVIEW
Las siguientes figuras muestran cuatro ejemplos de diferentes instancias del NI-DAQmx Write VI.


El siguiente diagrama de bloques de NI LabVIEW, para una generacin de salida analgica limitada, incluye
una constante Booleana "False" cableada al NI-DAQmx Write VI porque la generacin es temporizada por
hardware. El NI-DAQmx Write VI ha sido configurado para escribir mltiples muestreos de datos de salida
analgica para un canal a la tarea como una forma de onda analgica.


Escribir Datos en .NET
Para escribir con la biblioteca NI-DAQmx .NET, use el escritor y los objetos de transferencia. Este proceso es
similar a los datos de lectura que se mencionaron arriba.
Para realizar una escritura, cree una instancia de un escritor y pase una instancia de la clase DaqStream en
el constructor. Despus llame un mtodo en la clase del escritor para escribir los datos, como se muestra en
el siguiente snippet:
analogOutTask = new Task();
analogOutTask.AOChannels.CreateVoltageChannel( ... );
//Create the writer and attach it to the stream
AnalogSingleChannelWriter writer = new AnalogSingleChannelWriter(analogOutTask.Stream);
//Perform the write
double[] data = writer.WriteMultiSample(100);
Escribir Datos en C/C++
Para escribir datos analgicos use la funcin DAQmxWriteAnalogF64(). Para informacin sobre escribir otras
formas de datos, vea la Ayuda de NI-DAQmx Referencia C. Un snippet de cdigo para escribir 1000
muestreos de datos analgicos.
int written = 0;
DAQmxWriteAnalogF64(taskHandle, 1000, 0, 10.0, DAQmx_Val_GroupByChannel, data, &written, NULL);
Ejemplos para Examinar
LabVIEW Gen Voltage Update.vi
Write Dig Chan.vi
CVI Volt Update
Write Dig Chan
.NET GenVoltageUpdate
WriteDigChan
Regresar al Inicio
9. NI-DAQmx Wait Until Done

LibraryNI-DAQmxTask Configuration/ControlWait
Until Task Done [CVI]

Task.WaitUntilDone Method [.NET]


La funcin NI-DAQmx Wait Until Done espera la operacin de adquisicin de datos para completar antes de
terminar. Esta funcin debe ser usada para asegurar que la adquisicin o generacin especificada es
completada antes que la tarea sea detenida. Lo ms comn, la funcin NI-DAQmx Wait Until Done es usada
con operaciones limitadas. Una vez que la funcin ha terminado de ejecutarse, la adquisicin o generacin
limitada est completa y la tarea puede ser detenida sin alterar la operacin. Adems, la
entrada timeout permite que un tiempo de espera mximo sea especificado. Si la adquisicin o generacin no
se completa en este intervalo de tiempo, la funcin existe y es generado un error correspondiente.
Wait Until Done en LabVIEW
El NI-DAQmx Wait Until Done VI es usado en el siguiente diagrama de bloques de NI LabVIEW para verificar
que la operacin de salida analgica limitada es completada antes que la tarea sea liberada.


Wait Until Done en .NET
Para ms informacin sobre usar esta funcionalidad en .NET, vea el ejemplo GenMultVoltUpdates_IntClk.
Wait Until Done en C/C++
La funcin DAQmxWaitUntilTaskDone() es usada para esperar hasta que todo el muestreo en el bfer ha sido
generado. Llmelo despus de una funcin de escritura o inicio.
Ejemplos para Examinar
LabVIEW Gen Dig Pulse.vi
Gen Mult Volt Updates-Int Clk.vi
CVI Dig Pulse
Mult Volt Updates-Int Clk
.NET GenDigPulse
GenMultVoltUpdates_IntClk
Regresar al Inicio
10. NI-DAQmx Clear Task

LibraryNI-DAQmxTask Configuration/ControlClear Task [CVI]

Task.Dispose Method [.NET]


La funcin NI-DAQmx Clear Task libera la tarea especificada. Si la tarea se est ejecutando, primero la
funcin detiene la tarea y despus todos sus recursos. Una vez que la tarea ha sido liberada, no puede ser
usada a menos que sea recreada. De esa manera, si una tarea ser usada otra vez, la funcin NI-DAQmx
Stop Task debe ser usada para detener la tarea, pero no para liberarla.
Para operaciones continuas, la funcin NI-DAQmx Clear Task debe ser usada para detener la adquisicin o
generacin actual.
Liberar una Tarea en NI LabVIEW
En el siguiente diagrama de bloques de NI LabVIEW, una serie de pulsos continuos han sido generados con
un contador. Las series de pulsos continan siendo la salida hasta que se termina el Ciclo While y se ejecuta
el NI-DAQmx Clear Task VI.


Liberar una Tarea en .NET
Una vez que la tarea ha terminado de leer o escribir, simplemente llame el mtodo Task.Dispose.
Liberar una Tarea en C/C++
Una vez que una tarea ha terminado de leer o escribir, use la funcin DAQmxClearTask().
Ejemplos para Examinar
LabVIEW Cont Gen Voltage Wfm-Int Clk.vi
Count Digital Events.vi
CVI Cont Gen Volt Wfm-Int Clk
Cnt Dig Events
.NET ContGenVoltageWfm_IntClk
CountDigEvents
Regresar al Inicio
11. NI-DAQmx Properties
Attribute [CVI]

Property [.NET]
NI-DAQmx Properties brinda acceso a todas las propiedades asociadas con una operacin de adquisicin de
datos. Estas propiedades pueden ser establecidas al escribir en NI-DAQmx Properties y los valores actuales
de las propiedades tambin se pueden leer desde el NI-DAQmx Properties.
Varias propiedades se pueden establecer usando las funciones NI-DAQmx que se mencionaron
anteriormente. Las propiedadesSample Clock Source y Sample Clock Active Edge, por ejemplo, pueden
ser establecidas usando la funcin NI-DAQmx Timing. Sin embargo, a algunas de las propiedades menos
usadas solamente se puede tener acceso a travs de NI-DAQmx Properties.
Usar Propiedades en NI LabVIEW (Nodos de Propiedad)
En LabVIEW, un Nodo de Propiedad de NI-DAQmx puede ser usado para escribir y/o leer desde mltiples
propiedades. Por ejemplo, el siguiente Nodo de Propiedad de Temporizacin de LabVIEW NI-DAQmx
establece la fuente del reloj de muestreo. Despus, se lee la fuente del reloj de muestreo. Finalmente, se
establece el flanco activo del reloj.


En el siguiente diagrama de bloques de NI LabVIEW, es usado un Nodo de Propiedad de Canal NI-DAQmx
para permitir el filtro paso bajo del hardware y despus establece la frecuencia de corte del filtro para usarse
con una medida de galga extensiomtrica.

[+] Ampliar Imagen


Usar Propiedades en .NET
Como se mencion arriba en la seccin de Temporizacin, varias propiedades son establecidas en las
subclases y colecciones dentro del objeto de la tarea. En el siguiente snippet se muestra una propiedad
comn usada en NI-DAQmx:
//Create a new NI-DAQmx Task
Task t = new Task();

//Access the subobject properties of the Task class
t.Timing.SamplesPerChannel = 1000;
Usar Propiedades en C/C++
Para obtener o establecer propiedades para una tarea, existen funciones "getter and setter" individuales para
cada propiedad individual. Para informacin adicional vea la lista de propiedades y sus funciones en la Ayuda
de NI-DAQmx Referencia C en NI-DAQmx C Properties.
Ejemplos para Examinar
LabVIEW Cont Acq Strain Samples.vi
Cont Acq Accel Samples-Int Clk-Analog Start.vi
CVI Cont Strain Samples
Cont Accel Samps-Int Clk-Anlg Start
.NET AcqStrainSamples
ContAcqAccelSamp_IntClk_AnalogStart
Regresar al Inicio
12. Conclusin
NI-DAQmx ahorra tiempo de desarrollo y mejora el rendimiento de las aplicaciones de adquisicin de datos.
Una de las maneras en las que NI-DAQmx ahorra tiempo de desarrollo es al proporcionar un API que requiere
solamente un pequeo nmero de funciones para exponer la mayora de sus funcionalidades. De hecho, el
80% de las aplicaciones de adquisicin de datos pueden ser resueltas despus de aprender solamente las 10
funciones mencionadas en este documento.

You might also like