USB-6009 labview 7.1

Hi can anybody tell me if they have had any problems running USB-6009 with Labview version 7.0? I can't get it to recongnise my device and it's behaving as if there is nothing there. Do I need version 7.1 or is there a more sinister problem afoot?
Kyle

What version of DAQmx Base are you using? The latest version, 1.4, is supported on all versions of LabView 7.0 and higher. It can be obtained using the following link:
http://digital.ni.com/softlib.nsf/websearch/941677622E793A2686256F8C0083641A?opendocument&node=132050_US

Similar Messages

  • USB-6009 with Labview 2014 on Windows 8.1

    Hi,
    I have trouble connecting USB-6009 OEM with my new laptop with windows 8.1. My USB-6009 OEM device is not shown up in NI Max. So when I check Device Manager, there is a question mark on "NI USB-6009 OEM FW". I tried to install Labview 2011 but still the same. When I tried to choose the driver in Device Manager manually, I can only find NI-VISA driver as the closest one. It is still not working when I open DAQmx to check my card. It is still not detected in NI Max and anywhere within labview. When I used NI-VISA driver, and try to connect the device in NI Max, I get timeout error. I think I need to see NI-USB driver instead of NI-VISA driver. Any help would be appreciated.
    Cheers,

    Hi Thoo,
    You may also want to try reinstalling the DAQmx 14.5 driver first. DAQmx 14.5 is supported on Windows 8.1. Some of the driver files may have been corrupted and reinstalling the driver may solve the issue. If not, using the DAQmx Base driver could be a good option as Dennis suggested.
    Thanks,
    Frank
    Application Engineer
    National Instruments

  • USB-6009 Sine Wave

    Hi,
    I am new to LabView and am having some trouble. I need to input two sine waves into a USB-6009. I have a voltmeter that should read the output. Two of the problems that I have had thus far: I can only use "On Demand" in DAQ Assistant and even when I throw the DAQ Assistant into a while loop I still do not get a readout on my voltmeter. Any suggestions? Thanks for the help.

    That is confusing. You say you need to input 2 sine waves into a 6009 and that to me implies that you are doing a DAQmx Read. Then you say you have a voltmeter to read the output. That implies you are doing a DAQmx Write. If you are really doing a write from the 6009, then on demand is, of course your only choice. As the specs clearly indicate, the output of the 6009 is strictly software timed so you would need to pass a sine wave point by point and then you would have very little control over the frequency. And, again as the specs clearly state, the fastest output rate you could expect is 150Samples/sec.

  • Usb 6009 continuous analog output

    Hi
    I'm pretty new to Labview, so you may have to bear with me. I have a USB-6009 and I want to generate a continuos analog output voltage. I've got the example you have posted 'Gen Mult Volt Updates-SW Timed_LV7.1 (0 to 4).vi' working and it outputs a continuous sine wave.
    In a similar manner I need to generate:
    1. Ramp up voltage (and ramp down voltage): starting with a continuos constant voltage, which after a period of time linearly increases to another constant voltage, and which allows me to specify the 3 time intervals and the rate of increase.
    2. Pulsations: whereby I can specify the amplitude and time interval of each pulsation
    This is so that I can control voltage to a valve which regulates my pipe flow. In the example I have (one stated above), I do not understand specifically:
    i. Why I need both a 'Software Loop Time (ms)' as well as 'Timeout'
    ii. The 'Sinusoidal Pattern' input which seems to generate data for a sine wave- I can't get a description of that and there are no similar VIs for other waveforms; and what is the function of the two numbers it has?
    iv. How do I change amplitude and time period for the wave?
    iii. What does 'Index Array' do?
    thank you

    Hi there,
    I'm guessing the VI you are using is the one from this KB:
    http://digital.ni.com/public.nsf/allkb/6F2C2B49A89D685C8625711D007BDD64
    i. The software timed loop control is to control the rate at which you change the voltage output.  The timeout on the DAQmx Write VI is the maximum time in seconds the VI will wait to output a sample (eg. if the write buffer is full, the Write VI will wait for it to become available for 'timeout' seconds before outputting an error).
    ii. The sine pattern is just an array constant of doubles that make up the sine wave voltage values, and the for loop adds an offset (of two volts) to every single one of those values. You might want to replace that entire array constant and for loop with a Simulate Signal Express VI (just search for Simulate Sig or look in the Functions >> Input palette) and convert the dynamic data output to an array of doubles.  You can configure the type of waveform, amplitude, and time period from that express VI as well.
    iii.  Refer to previous answer.
    iv.  Index array returns an element of an array based on the index input.  You can turn on the context help and move your mouse over functions to get more help on them.
    I hope that helps!
    Way S.
    NI UK Applications Engineer

  • Usb-6009 high-speed continuous acquisition for slow control loop application

    Hi,
    After watching a few Youtube videos, I successfully built a control loop in LabVIEW using my USB-6009. Currently, this loop is limited by the speed my actuator can take and respond to commands, topping out at 200 Hz. This is completely sufficient for my application. My question is more regarding the wasted potential of the USB-6009 to acquire samples at a much higher rate than what would be obtained if I used a simple single sample-on-demand during every iteration of the loop.
    It seems to me that having the USB-6009 continuously acquire samples and having my control loop periodically check in for the latest data when it is ready to execute would have the advantage of allowing me to average groups of samples together to lower the overall noise associated with the measurement process (I am reading voltages from an amplified photodiode).
    1) Does anyone know how I would instruct the USB-6009 to continuously acquire at say 10 kHz, so that on each loop I will have 50 or so samples that can be averaged together for a more accurate measurement of my control variable? Unfortunately, I'm new to this and not too familiar with DAQmx Timing.vi.
    2) I've heard that reading into a buffer can increase latency for moving data into the computer. Given the low speed of my control loop, I don't foresee this as being a problem. Is this a correct assumption? I can probably live with an extra millisecond of latency.
    3) I goofed around briefly with DAQmx Timing and managed to see a buffer overflow error. Certain rare events will by necessity cause my control loop to take much longer to execute, so I cannot guarantee that occasionally during normal operation I will not overflow the buffer. Can I suppress this error so that the dialog box does not pop up and the program continues to run uninterrupted? If the buffer overflows and old data gets overwritten it isn't a big deal for me since the control loop is only concerned with the latest data anyway.
    Thanks for any info!

    Howdy Patrick!
    Here is a picture of the front panel:
    Here is the block diagram:
    And I've attached a copy of the VI saved for LabVIEW 7.1.
    Regards,
    Barron
    Applications Engineering
    National Instruments
    Attachments:
    most recent samples.vi ‏73 KB

  • USB-6009

    I am electrical engineering student and i design a project which the sensor signals through USB-6009 to PC labview for monitoring, but i dont know this sensor and USB-6009 can do this function or not? anyone can help, Thank you!
    Attachments:
    FFP350_product.pdf ‏61 KB
    ForceSensorFFP350.pdf ‏144 KB

    johnsold wrote:
    Kchiman,
    As an electrical engineering student it is time you learned to read and interpret data sheets. You will spend much of your career doing that.  And none of your professors ever mentioned it, right?
    Data sheets are the source of much of the information which is critical to the success (or failure) of your designs.  Of course none of your professors actually knows much about design either.
    Lynn
    MSEE, P.E., and 40 years of experience
    Lynn,  YMMD
    Spoiler (Highlight to read)
    Connecting the sensor could be done via screw terminals....  no risc for ppt high performers to touch the solder iron on the wrong side
    Connecting the sensor could be done via screw terminals....  no risc for ppt high performers to touch the solder iron on the wrong side
    Greetings from Germany
    Henrik
    LV since v3.1
    “ground” is a convenient fantasy
    '˙˙˙˙uıɐƃɐ lɐıp puɐ °06 ǝuoɥd ɹnoʎ uɹnʇ ǝsɐǝld 'ʎɹɐuıƃɐɯı sı pǝlɐıp ǝʌɐɥ noʎ ɹǝqɯnu ǝɥʇ'

  • USB 6009 Python Control

     Hello, 
    I am attempting to use python (with ctypes) to control my USB-6009.  The goal is to write out an analog voltage and then read in the voltage through an analog input with ability to change the number of points averaged and the number of times this is repeated(sweeps) averaging the analog input array.  The issue is that as we increase the number of times the voltage ramp is repeated (sweeps) we get a time out error (nidaq call failed with error -200284: 'Some or all of the samples requested have not yet been acquired).  This has us confused because the sweeps are in a larger loop and the Daq function should be the same if there are 10 sweeps (works) or 1000 sweeps (crashes).  Any insight would be greatly appreciated.  I have included the code below for reference.  
    import ctypes
    import numpy
    from time import *
    from operator import add
    nidaq = ctypes.windll.nicaiu # load the DLL
    # Setup some typedefs and constants
    # to correspond with values in
    # C:\Program Files\National Instruments\NI-DAQ\DAQmx ANSI C Dev\include\NIDAQmx.h
    # Scan Settings
    aoDevice = "Dev2/ao0"
    aiDevice = "Dev2/ai0"
    NumAvgPts = 10
    NumSweeps = 50
    NumSpecPts = 100
    filename = '12Feb15_CO2 Test_12.txt'
    Readrate = 40000.0
    Samplerate = 1000
    StartVolt = 0.01
    FinalVolt = 1.01
    voltInc = (FinalVolt - StartVolt)/NumSpecPts
    # the typedefs
    int32 = ctypes.c_long
    uInt32 = ctypes.c_ulong
    uInt64 = ctypes.c_ulonglong
    float64 = ctypes.c_double
    TaskHandle = uInt32
    # the constants
    DAQmx_Val_Cfg_Default = int32(-1)
    DAQmx_Val_Volts = 10348
    DAQmx_Val_Rising = 10280
    DAQmx_Val_FiniteSamps = 10178
    DAQmx_Val_GroupByChannel = 0
    def CHK_ao( err ):
    """a simple error checking routine"""
    if err < 0:
    buf_size = 100
    buf = ctypes.create_string_buffer('\000' * buf_size)
    nidaq.DAQmxGetErrorString(err,ctypes.byref(buf),buf_size)
    raise RuntimeError('nidaq call failed with error %d: %s'%(err,repr(buf.value)))
    if err > 0:
    buf_size = 100
    buf = ctypes.create_string_buffer('\000' * buf_size)
    nidaq.DAQmxGetErrorString(err,ctypes.byref(buf),buf_size)
    raise RuntimeError('nidaq generated warning %d: %s'%(err,repr(buf.value)))
    def CHK_ai(err):
    """a simple error checking routine"""
    if err < 0:
    buf_size = NumAvgPts*10
    buf = ctypes.create_string_buffer('\000' * buf_size)
    nidaq.DAQmxGetErrorString(err,ctypes.byref(buf),buf_size)
    raise RuntimeError('nidaq call failed with error %d: %s'%(err,repr(buf.value)))
    def Analog_Output():
    taskHandle = TaskHandle(0)
    (nidaq.DAQmxCreateTask("",ctypes.byref(taskHandle )))
    (nidaq.DAQmxCreateAOVoltageChan(taskHandle,
    aoDevice,
    float64(0),
    float64(5),
    DAQmx_Val_Volts,
    None))
    (nidaq.DAQmxCfgSampClkTiming(taskHandle,"",float64(Samplerate),
    DAQmx_Val_Rising,DAQmx_Val_FiniteSamps,
    uInt64(NumAvgPts))); # means we could turn in this to continuously ramping and reading
    (nidaq.DAQmxStartTask(taskHandle))
    (nidaq.DAQmxWriteAnalogScalarF64(taskHandle, True, float64(10.0), float64(CurrentVolt), None))
    nidaq.DAQmxStopTask( taskHandle )
    nidaq.DAQmxClearTask( taskHandle )
    def Analog_Input():
    global average
    # initialize variables
    taskHandle = TaskHandle(0)
    data = numpy.zeros((NumAvgPts,),dtype=numpy.float64)
    # now, on with the program
    CHK_ai(nidaq.DAQmxCreateTask("",ctypes.byref(taskHandle)))
    CHK_ai(nidaq.DAQmxCreateAIVoltageChan(taskHandle,aiDevice,"",
    DAQmx_Val_Cfg_Default,
    float64(-10.0),float64(10.0),
    DAQmx_Val_Volts,None))
    CHK_ai(nidaq.DAQmxCfgSampClkTiming(taskHandle,"",float64(Readrate),
    DAQmx_Val_Rising,DAQmx_Val_FiniteSamps,
    uInt64(NumAvgPts)));
    CHK_ai(nidaq.DAQmxStartTask(taskHandle))
    read = int32()
    CHK_ai(nidaq.DAQmxReadAnalogF64(taskHandle,NumAvgPts,float64(10.0),
    DAQmx_Val_GroupByChannel,data.ctypes.data,
    NumAvgPts,ctypes.byref(read),None))
    #print "Acquired %d points"%(read.value)
    if taskHandle.value != 0:
    nidaq.DAQmxStopTask(taskHandle)
    nidaq.DAQmxClearTask(taskHandle)
    average = sum(data)/data.size
    Thanks, 
    Erin
    Solved!
    Go to Solution.

    This forum is for LabVIEW questions.

  • USB 6009 thermocouple noise

    I'm using NI-DAQmx 7.5, Labview 7.0, and a USB-6009.
    I'm trying to get a more accurate reading from my j-type thermocouple.  It is now distorted with noise and jumps rapidly +/- 20 degrees around room temp without any heat being applied.  When heat is applied, it climbs as it should but with the same variation.  I haven't moved to the labview side of it yet, I'm still trying to get a usable reading in MAX.  I have it wired as a differential input with a floating signal source.  I've installed 10k ohm resistors for bias current return as instructed.  Installing the resistors helped but still leaves me with the readings shown in the attached pic.  I've also tried grounding my USB 6009 with no results.  Please help. john
    Attachments:
    thermocouple reading.jpg ‏41 KB

    Hi John,
    What you are running into is a problem with the actual voltage resolution of your USB-6009.  This device has 14-bits of resolution over a minimum range of +/- 1V.  That means that the voltage resolution is (1 - (-1))V / (2^14) = 2V / (16384) = 122uV.  While this is an excellent resolution for such a low cost USB device, you will still notice problems when trying to make a thermocouple measurement.  The reason for that is that Thermocouples make a very small output voltage (see image below).
    Common thermocouple types have the following response:
    K type: 41 microVolts per degree Celsius
    J type: 56 microVolts per degree Celsius
    T type: 52 microVolts per degree Celsius
    There are a few options for ways to get around this limitation.
    Good: You could read the signal in as a voltage and then manually convert that voltage into a temperature.  This would be the least accurate method, but it should allow you to average out your signal and then use the Convert Thermocouple Reading.vi to show the voltage as a temperature.
    Better: If you want to keep using the USB-6009 to measure thermocouple, what you really need to do is first amplify your signal before you connect it with your device.  This should increase your resolution of the thermocouple allowing you to get more accurate temperature specs.  This will require some more complex programming to properly scale your measurements, but it will give you more accurate readings for relatively little cost.
    Best: Opt for getting a USB device that is designed for taking temperature measurements such as the USB-9211A.  This device would give you a voltage resolution of 160mV/2^24 = 9.54 nV!  That's over 12500x the resolution of the USB-6009 that you currently have.
    Hopefully the above information helps you better understand what is going on and why.  If you have any other questions feel free to post them here.
    Message Edited by Otis [DE] on 01-13-2006 11:37 AM
    Message Edited by Otis [DE] on 01-13-2006 11:38 AM
    Otis
    Training and Certification
    Product Support Engineer
    National Instruments
    Attachments:
    761029-Thermocouple_Voltages.GIF ‏10 KB

  • USB-6009 DAQ

    Hi;
    Would you please advise which NI-DAQ software version is for USB-6009 using LabVIEW 7.1?
    Regards

    Hi;
    I have downloaded NI DAQ MX 8.9 which is supports LabVIEW 7.1, but it can not detect the NI USB-6009 driver and still asking for the driver.
    Can anyone help please?
    Regards

  • USB-6009 digital input change detection

    Hi,
      I am trying to acquire digital signals from an ni usb-6009 device using daqmx on labview 8.0. I need to write the signals from a port of the device to an output file only when there is a change in the signals and I am not able to do this successfully. I created a digital task in MAX and was able to select acquisition mode as '1 sample (On Demand) ' only. Any other selection for acquisition mode would result in error 200077 with the following message -
    Measurements: Requested value is not a supported value for this property.
    Property: SampTimingType
    You Have Requested: Sample Clock
    You Can Select: On Demand
    I selected '1 Sample (On Demand)' acquisition mode and was able to see the channel values on running it in MAX as I rotated a device connected to the usb-6009 device. As expected the hex values on MAX were showing up as FF,7F,3F,BF and this pattern was repeated everytime I provided the input by rotating the device.
    Next, I created a simple vi to use the digital task I setup on MAX. I want to be able to record the signals only when there is a change in the digital pattern from the channels.That is when there is atransition from FF to 7F to 3F and so on, the vi should write to an output file and if no change happens, it should not write to file. To do this, I explored the Timing vi and tried using the 'Change detection' mode, but that produced the same error as above. 
    Can anyone please suggest a way to accomplish what I am trying to do ? Any guidance will be a hugely appreciated.
    Thanks
    ~Sej

    All of that effort with sample rates, timing, change detection, etc ciuld have been avoided if you had read the specs. As you finally found out, the device only supports sftware timed i/o and no change detection. You wll have to do your change detection in software this is done with a shift register/feedback loop.

  • Usb 6009:connecting the sensor and motor

    Hi there,
    I am new to the labview also the usb-6009. I want to know if I can connect my sensor to the device. The output of the sensor is either analog voltage, pulse width or serial.If I want to use the AN pin, can I just connect the wire to the ADC from the usb or I need to add some circuit before connect it to the usb?also, if I want to control the brushless dc motor with the driver, can I just connect the wire from the motor driver direct to the device? How to connect it?
    Thanks

    You can connect analog voltages directly to the USB-6009 to be measured as long as they do not exceed the input limits (-10V to +10V).
    Connecting the motor directly to the outputs is a bad idea.
    Digital output is 0-5V, 8.5mA
    Analog output is 0-5V, 5mA
    So unless your motor draws less than 5mA (extremely unlikely) you'll blow up your DAQ!
    You will need to buffer the outputs somehow unless you are just driving logic gates.
    It's all on the datasheet... http://www.ni.com/pdf/products/us/20043762301101dlr.pdf
    Message Edited by Troy K on 06-06-2008 02:36 PM
    Troy
    CLDEach snowflake in an avalanche pleads not guilty. - Stanislaw J. Lec
    I haven't failed, I've found 10,000 ways that don't work - Thomas Edison
    Beware of the man who won't be bothered with details. - William Feather
    The greatest of faults is to be conscious of none. - Thomas Carlyle

  • USB-6009 Analog Waveform Output

    I'm trying to create an analog waveform from a USB-6009 device through one of the analog output channels. However, through the DAQ Assistant, I can only select the 1 Sample (On Demand) setting. When I test the device, I can only push a constant voltage out. If anyone has any advice on how to create an analog voltage waveform using this device, I would like to know.

    >I am only a novice at LabVIEW and data acquisition in general.
    I don't use Labview (I write in C++) so I can't help you with that. I try to answer questions about C/C++ and general hardware questions.
    >What did you mean by software-timed waveform generation?
    That's where the software driving the device sends a sample to the DAQ device, waits for the prescribed time interval, then sends the next sample. So the timing of the waveform is driven by the software, using the computer's clock, instead of by the DAQ hardware. Software-timed is less reliable and has (often) lots more jitter because of competition for CPU resources.
    >Does this mean that I cannot generate a waveform that is more than 150 Hz?
    It's worse than that. It means you can't generate a waveform faster than 150/N Hz, where N is the number of samples (data points) that define the waveform.
    John Weeks
    WaveMetrics, Inc.
    Phone (503) 620-3001
    Fax (503) 620-6754
    www.wavemetrics.com

  • USB 6009, DLL

    Dear Friends,
    I would like to control USB 6009 through a C# DLL. Do you have any samples or document to develop a DLL for USB 6009.
    Could you please provide, If you have any samples
    Thanks,
    Best Regards,
    Rathan

    How to create a DLL in C# doesn't really fit into a LabVIEW forum, I think you will find different online resources how to create a DLL in C#, maybe at MSDN.
    Within the DLL you simply need to make the Function Calls to the DAQmx C API, where you will find examples online, or also provided by the driver itself.
    Under Start>Programms>National Instruments>NI DAQ> Textbased Code Support you will find the C Documentation of the DAQmx API.
    Christian

  • USB 6009 - Calibration of Analog Input (Mac)

    Hi,
    I have recently acquired a NI USB 6009. I'm using it under labview 7.1 on Mac OS X 10.4 (Tiger).
    I can run the software examples and the datalogger without problems. However, the device seems
    not to be properly calibrated, and I can't figure out how to do it from the manual. When I connect
    pin 1&2 (analog in 0) to pin 32 and 31 (GND and 5V ref voltage) the software claims that the
    measured voltage it ~3.7V (a multimeter confirms that it is in fact 5.0V). Can anyone help
    trouble shooting this ?
    Thank you in advance,
    Niels

    A little update : After thinking some more I realized that it's because
    the USB 6009 is in differential mode, and I hadn't connected one pin. Now
    however, I have trouble figuring out where to change/set this. None of
    the programs (e.q. Acquire One Voltage.vi) seems to define this, so where
    is this defined ?
    Thanks,
    Niels

  • USB-6009 device not found problem

    Hello all,
    So my VI and USB-6009 have been working fine until recently.  I noticed the VI was not reading or graphing information from the analog input channel correctly.  My firmware is up to date, but I noticed a problem.  In Isdaq, it will recognize that the USB-6009 is connected, then when I run my VI and stop it, i check Isdaq for my device again, and it does not recognize any device.  I have to unplug the daq and replug it for Isdaq to recognize the usb-6009 again.  But each time I run my VI, it does not seem to collect any data, and it makes the device unrecognizable.  Do you know what the problem might be?  Attached is the VI I have been running in case you want to look at it.  Its been working fine until now.  
    btw, I am running Labview on a Mac OS X
    Thanks for the help!
    Solved!
    Go to Solution.
    Attachments:
    AO:AI Data Aquisition.vi ‏39 KB

    Hello Solis,
    I would recommend making changes to the parallel tasks to use the error cluster to force the order of execution, since NI-DAQmx Base is not multi-thread safe (review NI-DAQmx Readme). Please verify if this alleviates the issue.
    Best regards,
    Ali M
    Applications Engineer
    National Instruments
    www.ni.com/support

Maybe you are looking for