NIDAQmx.h

Bonjour,
Je travail actuellement avec une carte d'acquisition NI UBS 6008.
Le projet est autour de la commande d'un moteur via la carte. J'utilise un ancien programme qui utilise "#include <NIDAQmx.h>" afin de faire appel à la librairie contenant les fonctions permettant de commander la carte.
Après avoir installer le driver NIDAQmx, je ne sais toujours pas où trouver cette librairie.
Je travail avec Code::Blocks
Pouvez m'indiquez comment je pourrais me procurer ce fichier ?
Cdlt,
Alexandre

Bonjour,
vous le trouverez ici:
C:\Program Files (x86)\National Instruments\NI-DAQ\DAQmx ANSI C Dev\include
cordialement,
Romain DUVAL || Application Engineer Specialist ||Certified LabVIEW Architect (CLA) || Certified TestStand Architect (CTA)
National Instruments France

Similar Messages

  • To develop an VI to aquire data of thermocouples from a remote chamber in labVIEW real time, should use NIDAQ or NIDAQmx?

    Hai
    I need to develop an VI to aquire data at real time. Am using LabVIEW RT as the OS and i need to know, if i can use NIDAQ 7.0 or should i use NIDAQmx? what is the diffrence between the two? is it just that NIDAQmx makes job simpler?
    Also can anybody please tell me, how to access a channel in labVIEW? am not clear about the path to follow to get the physical channel as a virtual channel on the LabVIEW.
    I am using a 8186 PXI with labVIEW RT and a SCXI, with both scxi and daq card on the same chassis.
    the development will be done on Windows XP which will be the host machine.
    Thanx in advance for any answers
    Arun

    Arun,
    DAQmx is our new Data Acquisition driver and should be considered as the primary option when writing new applications because of supportability in the future.
    DAQmx does make Data Acquisition tasks much simpler, abstracting many of the board implementation details and giving you a common API for 99% of the tasks you might want to accomplish.
    There are a couple of minimum requirements for using DAQmx on LabVIEW Real Time:
    - You will need LabVIEW Real-Time 7.1 (or higher)
    - You will need DAQmx 7.2 (or higher)
    These requirements are mentioned in the following Knowledgebase:
    Is NI-DAQmx Supported in LabVIEW Real-Time?
    The other thing you might want to make sure of is that DAQmx supports the DAQ hardware you already have or are planning to use. DAQmx does support most of the existing DAQ and SCXI hardware products, and reading thermocouples should become a very simple task.
    With DAQmx you can use physical channels, Global Channels (Aliases for preconfigured physical channels, equivalent to the Traditional DAQ Virtual Channels) or DAQmx Tasks (Preconfigured Data Acquisition tasks that include channel, timing and triggering information). A good place to start to learn about these features could be:
    Advantages of NI-DAQmx
    The following link might be useful to check Hardware support:
    http://www.ni.com/support/daq/versions.htm
    The driver can be downloaded by following these links:
    ni.com -> Support -> Drivers and Updates -> Current Software Versions -> Multifunction DAQ -> NI-DAQ Version 7.3 for Windows 2000/NT/XP
    This includes the latest version of DAQmx and our Traditional DAQ driver. Please note that DAQmx base is also listed but that's our Register-Level Programming (RLP) driver, which provides DAQ support for previously unsupported platforms.
    I hope this helps,
    Alejandro

  • Finite pulse-trai​n generation with variable time lapses with NiDAQmx

    Being a newby in Labview and NiDAQmx, I find it tedious to program the application I need to drive my experiment : I want to generate a finite pulse train, with variable delays between two consecutive pulses. These delays are known before the experiment starts, summurized in a table (element 0 decribes the time lapse between pulse 0 and 1, element 1 between pulse 1 and 2 ...). I would like to use NiDAQmx to program this. I had in mind the following scheme : two counters, first one counting time between pulses, the second one generating the pulse once "counter one" has finished his job. What I don't figure out is how to reprogram "counter one"'s register, without introducing unwanted delays in the time
    sequence of my finite pulse train. I am using a 6052E DAQ, and I want to generate delays in a same pulse train ranging from 1 microsecond up to 20 seconds.
    Thank you for ANY help :-)

    Hello !
    Well, I will try to be more precise while answering your questions. But first let me thank you very much for your help : your comments, questions and remarks are very helpful to help me shape my project, as you shed light on particular problems I strictly had no idea before !
    1) I can certainly get on well with digital output as my flash device is triggered by TTL signals.
    2) The lighting device is home-made, and I think it will be better for my needs to produce light throughout the duration of the input at the “on” level. In any case it will be driven by TTL-like signals. The intensity is manually set, so no analog control is required.
    3) I will use Labview to collect the experimental data. The signal will be sampled during the light pulse : the rising edge of the TTL-like output signal will trigger both the lighting device and the data acquisition, the latter being stopped on the falling edge. The light emitted by the lighting device is called a “probe” for the following reasons : the photons are absorbed by the photosynthetic sample and “immediately” re-emitted at a longer wavelength. A photodiode acts as a signal transducer, and I monitor the intensity of this fluorescence. Knowing precisely when light pulses occurred after the initial start excitation (which is also a brief pulse of light but of a much greater intensity than the “probe” light) and the intensity of light emitted during theses pulses, I can reconstruct the kinetic of fluorescence decay. This kinetic reflects the behaviour of my biological sample. Thus no continuous acquisition is required as between two light pulses there is nothing to monitor. And all the half-time reaction are timed relative to the same “start” excitation as they reflect a jump sequence of an electron extracted by the “start” excitation : first jumps are quick ones (half-time in the 10 �s range) and last jumps are slow ones (half-time in the 1 s range). With respect to these kinetics, I would like a 1 �s precision. If not achievable, I could skip the quickest jump (but it would be a pity) and focus on the second one which has a 10 ms half-time reaction and a 100 �s precision would then be enough. But as we say in French : “Qui peut le plus, peut le moins !” (roughly meaning that when you can achieve the best, you easily can do the least). This precision relates to the position of one flash with respect to the others. I don’t need to be very precise on the duration of each individual light pulse : a typical value is 100 �s duration, but I can get on well with 90 �s or 110 �s, my data being an average of the light intensity emitted during the light pulse). All I want to know precisely is when it is fired.
    4) Concerning the hardware, I already have a NI 6052E DAQ board, and unfortunately my laboratory cannot allow me to spend more money on this. I also have a fast acquisition board (IMTEC T3012) I intended to use to acquire my photodiode signal in place of the 6052E A/D converter. It has an old Labview driver, and I managed to upgrade it to suit my needs. It has an onboard segmented memory and can keep track precisely (it has a 60 MHz sample clock) of a trigger event. I am wondering if I can overcome the timing precision issue with this board, knowing that I strictly don’t care that flash n�1 is triggered at (t0 + 10 �s) or (t0 + 11 �s), provided that I know it, allowing me to place precisely my data point on the time scale. I can program the number of memory segments (i.e. the number of light pulses) and each one is filled with data coming from the photodiode upon receiving the rising edge triggering the light pulse. The precise date at which each triggered is received is stored in the board memory, allowing time reconstruction.
    I do hope this is much clearer than my previous attempts ! Believe me, it is quite hard to leave biology for a while and enter the cryptic world of data acquisition !
    Gritche

  • Can NIDAQmx do multiple things in sequence ?

    Hello all,
    I'm learning NIDAQmx and I wonder if it's possible to program in a single task a complex set of events such as [Generate Analog Out signal from array during T1], [Wait T2], [Receive Analog In signal into array during T3], [generate callback when finished].
    After just a few hours I managed to to this as a sequence of 2 different tasks and it works fine, but to be able to do other things at the same time WHILE ensuring precision of operation (the wait sequence in the middle), the best would be for the whole thing to run independently.
    So what solutions are there ? Entire sequence in a NIDAQ task ? TaskOut+wait+TaskIn in a thread ? TaskIn started by an async timer launched at the same time than the start of TaskOut ?
    Thanks.

    Hello,
    It will be great if you could add information about the hardware that you are using for this task.
    However, I would like to introduce to you the Trigger feature and Retriggerable tasks. Triggers will allow you to execute, pause, or stop tasks based on hardware conditions or signals. This means they are not software dependant.
    Tips and Techniques in Data Acquisition Triggering - NI-DAQmx:
    http://www.ni.com/tutorial/4329/en/
    Retriggerable Tasks in NI-DAQmx:
    http://www.ni.com/tutorial/5382/en/
    Regards,
    MCOTO.

  • Using standard datatypes in NIDAQmx functions

    I use NIDAQmx 8.6 with LabWindows 7.1. Can I use in NIDAQmx- functions the standard datatypes instead of the NIDAQmx datatypes?
    For example 'unsigned char' instead of 'uInt8', 'long' instead of 'TaskHandle'.
    I have seen in 'NIDAQmx.h' that NIDAQmx datatypes anyway are derivates from the standard datatypes.
    Solved!
    Go to Solution.

    Imho you can use the standard types, as long as they are equivalent. The advantage of using the predefined special datatypes as found in DAQ etc is that sometimes such definitions may change (i.e. due to porting from 32 bit to 64 bit applications). In such cases your code may remain untouched, as NI should take care of a suitable, adapted type definition. 

  • How to specify "single ended" or "different​ial" data acquiring in NIDAQmx c++

    Dear all,
    i wrote a program in VC++ which acquires some analog voltage channels using NIDAQmx. By means of the "DAQmxCreateAIVoltageChan()" function it works properly, but I've faced a question:
    When I measure a sine wave as a input channel whith diffrential terminals (pins) on NI-Device, there is no problem but if I connect the input signal in single ended form (connect input signal to each single terminal and connect GND of NI-Device and Signal generator together), there is a irrigular and alternative offset (DC value) in aqcuiered data that shows there is an error in connection of GND's. (I'm sure about function generators)
    Is there any specific function to assign exactly that input data should be measured in differential or single ended form?  I mean, should I write seperate codes in C++, if I want to measure input signal in both forms of differential and single ended or does the mentioned function satisfy both needs (when the answer is positive wherefrom does this fault emerge)?
    Thanks a lot for your helpfully replies in advance,
    sincerely yours,
    Mohammad Harati

    Hi Harati,
    I'm not sure what your question is, but I have some questions too:
    1) Which device are you using?
    2) Did you connect the AI GND pin (in single ended)?
    3) As you called DAQmxCreateAIVoltageChan(), what parameter did you set for terminalConfig in eiter cases?
    Here is the documentation for DAQmxCreateAIVoltageChan()
    http://zone.ni.com/reference/en-XX/help/370471W-01​/daqmxcfunc/daqmxcreateaivoltagechan/
    This whitepaper may also help you:
    http://www.ni.com/white-paper/7113/en/
    Kind regards
    Heinz

  • NIDAQmx: how to simultaneously acquire channels at different sample rates?

    I have a PCI-6229 (M-series card). It has an advertised throughput of 250K/sec. I'd like to configure the card to simultaneously sample eight (8) AIN channels at 25K/sec, and none (9) AIN channels at 5K/sec. This results in a usage of about 245K/sec out of the available 250K/sec, which seems "do-able". But how do you setup the task(s) in NIDAQmx to do accomplish this? Are there any examples (I'm using the ANSI-C API) which illustrate how to do this?
    I can't just set all 17 channels to 25K (and decimate the data for the slow channels), because there is not enough bandwidth. I was also unable to setup two tasks (one for high-speed, one for low-speed) because I get an error when I start the
    second task. Is there another way to accomplish this?
    Thanks in advance for any help!

    Greetings,
    I would take a look at this KnowledgeBase that describes the process between doing this task.
    http://exchange.ni.com/servlet/Redirect?id=12678799
    Unfortunately, a text base example program does not currently exist, but if you have questions we'll do our best to help you out.
    Regards,
    Anuj D.

  • Continuous data acquisition using NiDAQmx with a start and a stop trigger

    I'm sorry if this has been answered many times before, I can't quite seem to find the answer I'm looking for.
    I am using LabWindows CVI version 7 and NiDAQmx with a PCI6023E.
    I wish to acquire data continuously using an external clock as a timebase - I am happy with this.
    I wish the acquisition to start when an external signal (say on PFI7) goes high. I am also happy with this.
    What I also need is for the acquisition to stop when the signal on PFI7 goes low, or possibly when a signal on say PFI8 goes high. I'm not too concerned about which approach to use.
    How do I stop the acquisition with an external signal?
    Thanks in advance,
    Crispie

    I don't have CVI installed, but I've attached screen shots of a LabVIEW program that I believe accomplishes what you are trying to do. Translating it to the C API should be straight forward. I'll try to explain what the program is doing since it's using some of the more advanced features of the driver. Also, the DAQ device you are using doesn't support a true "stop" trigger so I'm using a reference trigger to get as close to the desired functionality as possible.
    First, the program configures a finite acquisition that uses both a start trigger and a reference trigger. The acquisition is using an external sample clock and will acquire 4 samples (2 pre-trigger samples and 2 post-trigger samples). Four may seem like an odd number here, but it allows us to emulate the functionality of a stop trigger as close as possible. Given this configuration, you must acquire at least 2 samples before the "stop" trigger is recognized, and you must acquire 2 more samples after the "stop" trigger is recognized. Hopefully this restriction is acceptable. You can always discard the last two data points after the stop trigger if they're not of interest, but you're stuck always acquiring at least two points between when the start and stop triggers are recognized.
    The program also overrides the default buffer size and read position. By default, the DAQmx driver will pick a buffer size exactly big enough to fit the pre-trigger and post-trigger data (4 samples in this case) and will begin reading data from the start of the pre-trigger data. Explicitly allocating a larger buffer will allow your acquisition to execute without receiving buffer overflow errors, and changing the default read position will allow you to read all of the data between the start and stop triggers as it is acquired and not just the pre-trigger and post-trigger data.
    Finally, the while loop takes care of reading the data. In this case, the loop continues to read data until the task is done and there are no longer samples available for reading from the buffer. The number of samples read per iteration is the lesser of the user specified amount or the number of samples available for reading from the buffer.
    I hope this helps. Good luck.
    Attachments:
    Stop_Trigger1.JPG ‏40 KB
    Stop_Trigger2.JPG ‏43 KB

  • Nidaqmx.dll

    I want to use Borland C  Builder to open.
    I need nidaqmx.dll file and transform it to .lib file to support Borland C builder.
    my question :
    1:  Does anybody provide me nidaqmx.dll file. THx
    2. Does anybody know how to use BCB to open NI-DAQ
    Thx a lot

    Hello 求知的人 -
    You may be interested to know that an NI-DAQmx import library for Borland C++ is available here.  Hopefully this helps-
    Tom W
    National Instruments

  • Nidaqmx nidaqmxbase

    Hi everyone
    I am just starting out with c++ programming using NIDAQmx functions. In the examples I have found, functions are called "NIDAQmxSomeFunction" whereas in the documentation I have foundt the functions are called "NIDAQmxbaseSomeFunction". What is the difference between the functions with and without the base. Where can I find documentation for the functions wihtout the base word if there is an important difference.
    Kind regards,
    Magnus Lilledahl 

    Dear Magnus,
    thank you so much for your post on our webforum. Please not that DAQmxbase must be seen as a totally different driver tended for other operating systems as Windows. The DAQmx base driver is indeed missing some functionality if you compare this with DAQmx for Windows.
    Because it can be seen as a different driver, calling the driver should be different. Please let me know if you have any further questions.
    Best regards,
    Martijn S
    Applications Engineer
    NI Netherlands

  • How to update NIDAQmx driver in Labview RT?

    Dear members,
    I have a problem  to make my NI PCI 6289 card working in Labview RT.
    Namely when I run the self test appears an error number -88716.
    The screenshot says that  the NIDAQmx drivers on the host and on the target are different.
    It suggests to update the driver to correct the error.
    Now I have checked. On the host I have the NIDAQmx8.5.1f2 driver on the RT target the NIDAQmx8.5.1.
    The question I want to ask is. How can I update the driver on the RT target to the other version?
    Since I have installed the RT system just yesterday I can't imagine that I have done some updates on the host which are not done on the target.
    Someone has an idea how to override the error?
    Thanks
    Principiant  
    Solved!
    Go to Solution.

    The NI support solved my problem here is the link with the solution.
    http://digital.ni.com/public.nsf/allkb/A47734CC1E03922186257435004D0C49?OpenDocument
    In the download page, just download the first  link NIDAQmx 8.7.1 not the runtimes at the end of the page.
    Thanks for the help .
    Bye
    Principiant

  • PXI-4472 compatibility NIDAQmx base 3.4.0

    Hi,
    I have labview 10.0 in opensuse 11.4 and apparently there is no NIDAQmx support for labview 10.0 so I ended up installing the NIDAQmx base 3.4.0.
    I have a PXI-4472 card and it is not detected with the apparent reason that the NIDAQmx base.does not support the PXI-4472.
    Is there someone who has had a similar problem and is there any solution of working around this issue?
    Please let me know,
    Thanks,
    Chiran

    Duplicate Post

  • How to use NIDAQmx to measure voltage, resistance and thermocoup​les

    I'm new to using NIDAQmx. I was looking for examples to measure multiple functions like voltage, resistance and thermocouple in the continuous mode at the same time.
    ben

    In order to do that you would need to build multiple Create Voltage Channel VIs into the same string. Attached is an image of what this would look like.
    Otis
    Training and Certification
    Product Support Engineer
    National Instruments
    Attachments:
    675977 - Multiple AI Tasks.JPG ‏21 KB

  • LNK1106: invalid file or disk full error when attempting to link nidaqmx.lib

    I am attempting to build the ContGen-ExtClk.c example file from the DAQmx ANSI C examples.  I am using Microsoft Visual C++ 4.0 (yes I know this is an old version).  The file compiles with no errors; however, when I attempt to build an executable I get the following linker error:
    --------------------Configuration: TestDaq2 - Win32 Debug--------------------
    Linking...
    C:\MSDEV\LIB\nidaqmx.lib : fatal error LNK1106: invalid file or disk full: cannot seek to 0x42d0f528
    Error executing link.exe.
    TestDaq2.exe - 1 error(s), 0 warning(s)
    Am I using the correct version of the library file?  I copied it from the C:\Program Files\National Instruments\NI-DAQ\DAQmx ANSI C Dev\lib\msvc folder.
    Thanks,
    Steve Reiling

    Hi Steve,
    There is another discussion forum that talks about using older versions of Visual C++.  Please take a look at it and let me know if you have further questions.
    Regards,
    Hal L

  • Where is NIDAQmx 64bit common.dll

    I installed NIDAQmx 2014 and I am looking for the 64 bit common.dll. I can find the  dnet/assembies (64-bit)/current folder but common.dll is not there. The DAQmx.dll and common.native.dll are there. Where can I find the 64 bit common.dll to compile a 64 bit application?
    Notes: in the 32 bit folder all the 32 bit dlls are there including common.dll.
    John A. Lively
    NDE Engineer
    Pratt & Whitney

    Hi John,
    NationalInstruments.Common is platform-agnostic, meaning you can use it in both 32-bit and 64-bit builds. This fact is not explicitly called-out in any of the documentation I found, but I did find the following useful: http://zone.ni.com/reference/en-XX/help/372636F-01/mstudiowebhelp/html/64bitsupport/ . 
    Note: NationalInstruments.Common has dependencies which are platform-specific (e.g., NationalInstruments.CommonNative). You have to make sure that, during deployment, you deploy dependencies that will match the bitness of your application.
    Daniel D.
    National Instruments
    Automated Test Software R&D

Maybe you are looking for