NI-DAQmx

Hi all,
I am trying to sample a 12bit input using sample clock and start sampling trigger. Here's how I configure the task:
DAQmxErrChk(DAQmxCreateTask("",&samplHandle));
DAQmxErrChk(DAQmxCreateDIChan(samplHandle,"Dev1/port0/line0:7","",DAQmx_Val_ChanForAllLines));
DAQmxErrChk(DAQmxCfgSampClkTiming(samplHandle,"/Dev1/PFI0",1000000.0,DAQmx_Val_Rising,DAQmx_Val_FiniteSamps,length));
DAQmxErrChk(DAQmxCfgDigEdgeStartTrig(samplHandle,"/Dev1/PFI1",DAQmx_Val_Rising));
DAQmxErrChk(DAQmxRegisterEveryNSamplesEvent(samplHandle,DAQmx_Val_Acquired_Into_Buffer,length,0,Callback,this));
DAQmxErrChk(DAQmxTaskControl(samplHandle,DAQmx_Val_Task_Commit));
When I run it in QT Creator it gives me this error:
DAQmx Error: Specified property is not supported by the device or is not applicable to the task.
Property: DAQmx_StartTrig_Type
Task Name: _unnamedTask<0>
Status Code: -200452
DAQmx Error: Task specified is invalid or does not exist.
Status Code: -200088
Previously, when I used analog input instead of digital, I did not have any problems. Any one has a clue what's wrong with my channel configuration?
Also, I defined the channel as
"Dev1/port0/line0:7"
just for example. Can anyone tell me the syntax for defining PFI2FI13 for my 12bit digital input? It looks like I have to define it in lines/ports format which would probably look something like:
Dev1/port1/line2:7 through Dev1/port2/line0:5?

Duplicate Post. I answered some of your questions on the other post.
Aaron W.
National Instruments
CLA, CTA and CPI

Similar Messages

  • NI DAQMX Driver performanc​e

    Hello all,
    I would like to build a SubVI to generate digital & analog output, but am concerned about possible performance issues.   In some extreme cases I will need to call this SubVI in rapid succession(50ms interval) hundreds of times.   It will contain the following 3 tasks to be executed in sequence:
    Task #1 - Set two bits high
    Task #2 - Analog Generation
    2.  Sychronize two NI-DAQmx PCI cards via a RTSI cable at 40khz sampling rate.
    3. Generate
    Task #3 - Set two bits low

    duplicate post. continue here

  • NO Disk error when DAQmx is referenced

    Referencing NationalInstruments.DAQmx causes a NO DISK error in Visual Studio (see attachment)
    I'm using Visual Studio 2012 and MS 2013
    The DAqmx version is 9.8.45.42
    Has anyone seen this before and is there a fix?
    Steve
    Attachments:
    DAQMX Error.JPG ‏22 KB

    See Top 25 Bugparade: # 4264750
    This is a SecurityManager - Problem and the java.io.File.
    eg.:
    System.setSecurityManager(new RMISecurityManager());
    File[] roots = File.listRoots();
    Then you will see the problem...
    I tried the following workaround:
    before you access disk. (or JFileChooser)
    SecurityManager sm = System.getSecurityManger();
    System.setSecurityManager(null);
    // disable the SecurityManger
    // this special disk access needs no SecurityManager..
    ... popup JFileChosser or make FileAccess..
    System.setSecurityManager(sm);
    // restore the old SecurityManger
    It's not the best solution but it works..
    hope this will help,
    Wolfgang
    EDI Organisation

  • USB 6009 DAQmx Deployment

    Hi.
       I have created a 4 channel differential data logging scope with a NI USB-6009. I would like to deploy this 'easily' to many of my colegues. I have app builder and the ability to build apps, but I would like to include the correct drivers for the 6009 in with the installer (although I have selected NI_DAQmx Core Runtime and NI_DAQmx MAX config support).
       For the running of the app, I have created a Task that consists of 4 channels. I would like it for my end user not to have to configure this. Does anyone know how I might acheive this? My experience of deployment is limited.
    Many thanks, Alec

    Hi Alec,
    It's also worth installing DAQmx MAX Configuration Support from the install builder if you still want to be able to modify the tasks from MAX as well.
    Best Regards,
    Chris
    National Instruments - Tech Support

  • USB 6009 and DAQmx Base Concerns

    Hello,
    I just received a USB-6009 multifunction DAQ device along with DAQmx Base for use on Windows XP with LabWindows/CVI ver 7.1.  Both the 6009 and DAQmxBase are successfully installed however I have several questions, I hope I am missing something obvious:
    1. The Task Configuration Utility is not needed for use with LabWindows/CVI?  I believe I read this in the Getting Started Guide.
    2. There is no function panel for the DAQmxBase functions?  I even searched the installation CD and found no .fp files.  So the only way to know what functions are available with DAQmxBase is to open the NIDAQmxBase.h file and search through the function prototypes?  Then, to know what a function does it is necessary to open the C Function Reference Manual via the Windows Start button and search for the function name of interest?
    3. When creating a digital input or output channel with DAQmxBaseCreateDIChan or DOChan is it only possible to setup a "channel" as an entire port?  Is it not possible to setup a channel as a single input or output line?  Similarly, once the channel is configured is it only possible to read or write an entire port with DAQmxBaseReadDigitalU8 or WriteDigitalU8?  I was expecting something similar to the DIG_out_line function used in Traditional NI-DAQ where a board number, port number, line number and state are passed so that a signal output line can be set on or off.
    Thanks in advance for the assistance,
    - Aaron

    Aaron T. wrote:
    Hello,   I just received a USB-6009 multifunction DAQ device along with DAQmx Base for use on Windows XP with LabWindows/CVI ver 7.1.  Both the 6009 and DAQmxBase are successfully installed however I have several questions, I hope I am missing something obvious:   1. The Task Configuration Utility is not needed for use with LabWindows/CVI?  I believe I read this in the Getting Started Guide.  
    **The Task Configuration Utility is not necessary, except that there is significant functionality missing from DAQmx Base but present in the utility. That includes a lot of what DAQmx calls "proerties", and includes things like the convert rate for AI scanning.
    2. There is no function panel for the DAQmxBase functions?  I even searched the installation CD and found no .fp files.  So the only way to know what functions are available with DAQmxBase is to open the NIDAQmxBase.h file and search through the function prototypes?  Then, to know what a function does it is necessary to open the C Function Reference Manual via the Windows Start button and search for the function name of interest?  
    **I don't use CVI so I don't know anything about this. It strikes me that even if you have such a panel reading the documentation is a good idea
    3. When creating a digital input or output channel with DAQmxBaseCreateDIChan or DOChan is it only possible to setup a "channel" as an entire port?  Is it not possible to setup a channel as a single input or output line?  Similarly, once the channel is configured is it only possible to read or write an entire port with DAQmxBaseReadDigitalU8 or WriteDigitalU8?  I was expecting something similar to the DIG_out_line function used in Traditional NI-DAQ where a board number, port number, line number and state are passed so that a signal output line can be set on or off.  
    **Well, the ReadMe file says that USB-6008/9 is supported with both Line I/O and Port I/O. On the other hand, the documentation for DAQmxBaseCreateDOChan and DAQmxBaseCreateDIChan say for the lineGrouping parameter, "Always pass DAQmx_Val_ChanForAllLines." So your question is a good one! Perhaps one of the NI engineers can comment on this.
    - Aaron
    Thanks in advance for the assistance,
    John Weeks
    WaveMetrics, Inc.
    Phone (503) 620-3001
    Fax (503) 620-6754
    www.wavemetrics.com

  • USB-6009 Daqmx Base 3.3 Cannot creat 2 or more channels on Windows mobile 6

    Hello,
    I have USB-6009, PDA iPAQ 214, WM6, Daqmx base 3.3, Labview 2009. In order to create new mobile project I use wizard and standart dynamic example: Cont Acq&Graph Voltage-Int Clk.vi. All works ok, but if I add more chanels in VI "Create Channels" or place new VI block and enter "Dev1/ai1", exe on my PDA cannot work correctly. Exception after RUN. I have no idea how build correct application with 3 channels without this exeption...  On PC all works. Whay right way to create channels? I attach VI which don't work, for examle. I read daqmxbase cannot support WM6, but 1 channel work ideal!
    Attachments:
    diagramm.jpg ‏113 KB

    Vital000,
    I forgot to mention that, yes, Windows Mobile 6 is not supported along side of DAQmx Base. That means you might be able to get some  of the same functionality(limited) that you would with Windows Mobile 5, but most likely not 100% functionality. This could explain why 1 channel works and multiple channels do not. I will try and help you out, but as this is not supported my ability to help is limited.
    Ben Sisney
    FlexRIO V&V Engineer
    National Instruments

  • Daqmx "Done" event not triggering event structure

    I would like the user to be able to abort my daqmx task by pressing a button.
    I am attempting to use the method in this VI:
    https://decibel.ni.com/content/docs/DOC-15815
    It utilizes an event structure with the daqmx Control Task VI to abort.
    The example VI above works for me, on my system with my USB-6356 device, as expected.
    When I attempt to incorporate the same method into my VI it does not--despite having an identical arrangement, so far as I can tell.
    I believe that my problem lies with the event structure, and the dynamic registration.  I am unfamiliar with this and must be using it incorrectly.
    I have attached my VI, though it is cumbersome.  The code which I am struggling with is in the "Acquire" case.  As far as I can tell, I am doing exactly the same this in this particular case as in the example mentioned.  Yet in the example, the event structure completes, or aborts, whatever you want to call it, right after the "Wait Until Done" VI executes.  In my own VI, the "Wait Until Done" and "Clear Task" VIs execute, but the event structure does not register it.
    Here are my specific questions: is there anything extra or special that one must do in order for the Task to properly trigger a "Done" event and pass through the event structure?  At what point is the daqmx task "Done"? 
    thanks,
    Matt
    Attachments:
    BoomTubeMain.vi ‏175 KB

    natasftw,
    My event structure is identical to theirs; what you are seeing are the two different cases that exist in the event structure.  In both the example and the VI, there is a <task out>: Done and a "Dynamic Event": Value Change.  In the dynamic event case, I have my abort button and relevant code--this I believe is the code you were referring to, which you thought I was missing...  Regarding my multiple event structures, they should operate completely independently as they respond to different events.

  • How do I use daqmx to get encoder direction/count on M-series board?

    I have an incremental dual channel  encoder from Rotalink. I want to take angular postion and angular speed from this encoder. My NI DAQ card is PCI 6221 which belongs to M series. First, soft-timing was used to get anuglar postion and sampling rate is set at 1Hz. The vi program works well. However, it does not produce  good results when the sampling frequency is increased to 100Hz. So I turned to hardware-timing. The example, "Find example>> Hardware Input and Output>>DAQmx>>Counter Measurements>>Position>>Meas Angular Pos-buff ext Clk.vi" gets the readings. A function generator which can produce pulses at the frequency rang from 1Hz-1Mhz was wired to PFI9 in accordance with "
    You need to find your PFI pin numbers to know what to wire A,B and Z to on your m-series board, to do this go into max right click NI-DAQmx Tasks click Create New DAQmx Task >> Counter Input >>Position>>Linear, and setup the task for your measurement. It will tell you what the PFI lines are. You then need to look at the wiring diagram and connect it to the correct pins." as an external clock. The channel A and B were wired to PFI8 and PFI10 respectively. However, it still gives errors like 200284. Comments are grealy appreciated!

    Hi Zibin
    I have been trying to work out what is not working I need some more information
    What frequency is your function generator actually generating?
    What have you set your time out value to?
    What exact errors are you getting and when do you get the error?
    What would really be helpful is if you could send me your code because by the sound of it, it should just work the card is more then capable of doing what you want so chances are it is the code.
    Regards
    Tim M
    NI UK

  • How do I use a counter for time measurement with NI-DAQmx and C++?

    Hi,
    I need my C++ program to read time (number of elapsed ticks) using the counter on PCI-6229. I had this written and working for the non-MX driver, and now I need to re-write it for NI-DAQmx.
    Here are the steps that I want to accomplish:
    1. Route the 80MHz timebase to the input of "Dev1/ctr0"
    2. Start the counter and let it count the ticks.
    3. After a while, read the number of ticks from the counter.
    Here is how I am trying to do it now (without success):
               DAQmxCreateTask ( "" , &taskHandle ) ;
               DAQmxCreateCICountEdgesChan ( taskHandle , "Dev1/ctr0" , "" , DAQmx_Val_Rising, 0 , DAQmx_Val_CountUp ) ;
               DAQmxConnectTerms ( "/Dev1/80MHzTimebase" ,  "/Dev1/Ctr0Source" , DAQmx_Val_DoNotInvertPolarity ) ;
               DAQmxStartTask ( taskHandle ) ;
               then DAQmxReadCounterScalarU32 ( taskHandle , 0.25 , &curCount , NULL ) ;
               and DAQmxClearTask ( taskHandle ) ;
    No errors are generated, but I do not see the tick count being incremented when I repeatedly read the counter.
    Advice will be greatly appreciated!!

    Hi Peter,
    Welcome to the forums!   I just want to make sure I understand what you are trying to do.  You would like to count the rising edges of the 80 MHz clock using DAQmx in C++.  In order to route the timebase to the counter, you need to use the signal name (PFI8) instead of the counter (Ctr0Source) for the counter source input.  This name is found in Measurement Automation Explorer (MAX) by right-clicking on the device and choosing “Device Pinouts.”  This will physically put the 80 MHz clock on the PFI8 line, so make sure you reset the device or disconnect the terminals after you are done. 
    That being said, may I ask what you are trying to do by reading the number of elapsed ticks?  If you are trying to monitor a hardware timed pulse, it would be better to count the frequency or period of that pulse.  This would provide better accuracy, because you are not relying on how fast DAQmx Read can poll the hardware.  If you are simply looking for a software based timer, I would recommend taking a look at this MSDN forum post. 
    Using the GetTickCount function instead will free up your counter and provide comparable accuracy to counting the edges of the timebase.
    I hope that helps you out, let me know if you have any further questions about this. Good luck with your project.
    Rod T.

  • How to get I32 enum text out of a control (i/p terminal config, active edge of DAQmx vis)

    Hi,
     I am using DAQmx VIs create channel.vi and sample clock.vi, they have inputs (input terminal configuration) and (active edge) both are I32 and have enum looking drop down options. i want to use those text values to put into my excel file, but they give out numeric codes related to respective option. is it possible to get the text as it is.
    it is not an enum but I32 which looks like enum..
    plz help..
    Thanks
    Solved!
    Go to Solution.

    Note: This assumes that you have an actual control on the VI. If you have a
    block diagram constant, then that won't actually work. In this case to get the actual text you need to pick from list of text items. To further complicate things, the actual values that are generated are not sequential. You can use either a case structure or a 2-step lookup.
    Attachments:
    Example_VI.png ‏7 KB

  • Problem with DAQmx and Real Time PCI-7041/6040E.

    Problem with DAQmx and Real Time PCI-7041/6040E.
    I have a problem with the Real Time card PCI-7041/6040E, I think it is properly installed because my software run with the traditional NI-DAQ. When I try to use the new DAQmx to acquire one signal, Labview doesn't see any device for de DAQ card 6040E.
    Information, I work on Windows XP and LabView v7.0.0 (NIDAQ RT v7.0.0, NI-Serial RT v2.5.2, NI-VISA v3.0.1 and NI-Watchdog v2.0.0).
    Could Labview RT run with new DAQmx ?
    What can I do to use DAQmx with PCI-7041/6040E?
    Thanks for your help !

    Hello,
    I refer to your posts because i am using the PCI 7041/6040E card as
    well but without any success to make it work. The problem I have
    already described in the following thread:
    http://forums.ni.com/ni/board/message?board.id=170&message.id=120198
    Would be nice if you had a look on it, maybe you can help me. BTW, the
    thread starts with a problem of someone else, the difficulties I
    encountered are to be found a little bit to the bottom of the thread's
    page.
    Thank you!
    Dirk Völlger
    Darmstadt
    Message Edited by ratschnowski on 07-28-2005 07:14 AM

  • Problem with DAQMX on a 6025E !!

    Problem with DAQMX on a 6025E
    I work on a DAQ 6025E and I can't use the example "Write Dig Port.vi" and all others example on digital output with DAQMX. There isn't any hardware failure because the same installation functions correctly with the traditional DAQ. I want to use these channel parameters: Dev1/port2.
    I already tested to make a reset device and use "line or port configuring vi" but without successes.
    Thanks for your help!
    Attachments:
    Write_Dig_Port.vi ‏48 KB

    I took a look at the example you attached and it looks fine. Here are a few things to try out BEFORE running the example from MAX:
    1) Remove any SCXI, SCC, and accessories from the configuration in MAX so that no DIO lines are reserved for communication.
    2) Reset the driver to work in DAQmx mode for your board. To do this, first right-click the "Traditional DAQ Devices" and say "Reset Driver" and then right-click your 6025E under DAQmx Devices and say "Reset Driver" again. This should enable the driver for DAQmx.
    3) In MAX, under DAQmx Devices, run the test panel and make sure you can read/write all the DIO lines there first. If that works fine you should be able to run the example.
    Remember that the port names for the 6025E are Port 0, Port 2, Port
    3, and Port 4 (no Port 1).
    Good Luck!!!
    Sincerely,
    Brooks Bailey
    Application Engineering
    National Instruments

  • Would you Open and Close DAQmx tasks within a function or Globally

    Hi Guys,
    This should start something.
    The subject is DAQmx Tasks.
    If you were writing a function that is called many times, say MeasureVolts (double *Value) to obtain a reading from an Analogue Input Channel.
    Would you.
    1. open and start the task inside the function, do the measurement and then close the task inside the same function.
    or
    2. open the task globally and later do the measurement inside the function using the global task then close the task only when the application is closed.
    I am mostly concerned with the overhead of task generation and closing, what do you guys and girls out there do?? and what is the general opinion?
    I would appreciate your views.
    Regards
    Paul.

    I would definitely NOT keep configuring and clearing (I think that's what you mean by open and close) the same task over and over.  I would configure once, read many times in my main app, then stop & clear once.
    I typically like to package such data acq into an "Action Engine" that keeps track of its own DAQmx task id so I don't need to sling that task id wire around into multiple parallel loops / vi's.  Attached is a very stripped-down example for Digital Input. 
    I would typically do more with error testing and would make the "Action" enum into a typedef custom control, but this gives you the basic idea.  The action engine approach works very nicely when there's a small # of different kinds of input parameters and output info needed to support all the necessary action cases.   When you start needing a large number of differnent kinds of inputs and outputs to support the desired actions, then you start having difficulty with (1) having enough terminals to wire and (2) remembering which inputs and outputs are meaningful for which actions.
    -Kevin P.
    Attachments:
    DI Action Engine.vi ‏75 KB

  • Data acquisition problem with NI-DAQmx 9205 and SignalExpress

    Hi everyone,
    I am using a NI-DAQmx 9205 connected via ethernet to my computer and Labview SignalExpress running to acquire data. I am working with EMG and I use an amplifier system from GrassTechnologies (http://www.grasstechnologies.com/products/ampsystems/ampsystems.html). The way it works is the electrodes are plugged on the amplifier system and the amplifier is plugged to the NI-DAQmx 9205.
    I don't know how to setup the system to be able to read properly the emg signal on SignalExpress.
    Does anyone know how to use it?
    Thank you for youe help
    John

    Hi John,
    If I were an Applications Engineer I'd probably be able to figure this out on my own but would you mind elaborating on your hardware setup a little? You mention plugging into a "NI-DAQmx 9205", however the NI-DAQmx is the data acquisition 'driver', the [NI]9205 is an Analog Input Voltage module. Do you mean to be plugging into a Compact DAQ or cRIO?
    Also, I'm not familiar with EMG readings or the amplifiers/electrodes you're working with.
    What is the signal type going into the amplifier from the electrodes, and what is the signal type and range (amplitude) of the signal coming out of the amplifier; AC, DC? I'm assume it's all voltage?
    Straight voltages are pretty easy to work with provided you can scale it to usable units.
    Lets get your hardware and signal types figured out then we'll be able to tell Signal Express how to handle those signals.  
    SCXI- 1000 Chassis w/ 1346 adapter
    PCI 6281 DAQ card
    SCXI- 1520 Bridge Board w/ 1314 Terminal Block (x2)
    SCXI- 1180 Feedthrough Panel w/ 1302 Block
    Signal Express 2014.
    Win7 Enterprise

  • Using Signal Express VI for DAQmx, timing & file size issues

    I am using a Signal Express VI with my DAQmx. Long story short, my DAQmx VI's don't work in LV 8.6 (possibly IT installation error). I have a few issues (I'm a beginner so be easy).
    First, I'm confused on how to get the timing correct. I am trying to read a 100 samples (2 channels) average them and repeat this at 30Hz and record this data.
    Second, everytime I open the Signal Express VI (in my block diagram) and change sampling for example, click OK, then save my VI before running my program. I noticed the file on disk increased in size by the megabytes! All I changed were the sampling settings.
    I appreciate any input, thanks in advance!
    -Michal
    Attachments:
    Philtec_09-22-09.vi ‏2589 KB

    To your first concern, it sounds like DAQmx was installed before LabVIEW.  Just reinstall DAQmx and it will work fine in LabVIEW.
    For you second concern.  To get 100 Samples at 30 Hz, you will need to change your channel setup in signal express.  You will need Continuous Aquisition, with 100 Samples to Read at 3000 Hz.  Then you code should work as expected.
    Chris Bakker
    National Instruments
    Applications Engineer
    Check out LabVIEW 2009 and the New X-series DAQ!

  • Error -200587 occurred at DAQmx Start Task.vi:7

    I am running the attached code Merrit_Coil_calibration, and I get the following error:
    Error -200587 occurred at DAQmx Start Task.vi:7
    Possible reason(s):
    Requested operation could not be performed, because the specified digital lines are either reserved or the device is not present in NI-DAQmx.
    It is possible that these lines are reserved by another task, the device is being used through the Traditional NI-DAQ interface, or the device is being reset. You might also get the error if the specified resource is currently in use by LabVIEW network variables bound to the DAQ Channel, or if the DAQ Channel is being used in any OPC Client software.
    If you are using these lines with another task, wait for the task to complete.  If you are using the device through the Traditional NI-DAQ interface, and you want to use it with NI-DAQmx, reset (initialize) the device using the Traditional NI-DAQ interface. If you are resetting the device, wait for the reset to finish.
    Device:  Dev2
    Task Name: _unnamedTask<F>
    I am calling the same DAQ, many different places in my code and I think that is the problem, but I can not figure out why or hw to fix it.  Anyone have any suggestions?
    Attachments:
    Final.zip ‏2434 KB

    Thank you both for your input.  I slightly changed my code to Merritt_Coil_calibration (updated code attached) and the first error went away, but now I have a different one which is:
    Error -200429 occurred at DAQmx Write (Digital U32 1Chan 1Samp).vi:1
    Possible reason(s):
    Value passed to the Task/Channels In control is an empty string (or I/O control).
    The value must refer to a valid task or valid channels.
    As far as what DAQ device I am using, it is the NI USB 6009.  I am only using digital port 0.  During different pieces of my code I send different values to port 0.  I am using this to drive some stepper motors.  I thus send square waves on the different pins on port 0.  I do not know if this is exactly what you were asking. 
    Whatever the case, I was wondering if anyone knows why this error occurs and how I could fix it. 
    thanks.
    Attachments:
    honorsproject.zip ‏256 KB

Maybe you are looking for