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
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();
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);
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));
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.
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
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
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.