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.

Similar Messages

  • Usb 6009 digital input

    Dear All!!
    With the following vi. I'm trying to receive a 5V signal in a digital input, using a usb-6009 device.
    I would like to use the 5 VCC supply, available in pin 31 of the same device and send it to pin 17, representing line0 of port0. During execution, 'm physically connecting and disconnecting  these pins in order to see the difference in a led indicator. Unfortunatelly, the led is always on, even if both pins are disconnected.
    Could somebody help me? I would be very pleased.
    Thank you very much in advance,
    Miren
    Attachments:
    proof.vi ‏38 KB

    Hi Miren,
    "the led is always on, even if both pins are disconnected"
    RTFM?!
    They use open collector inputs with an internal pullup resistor of 4.7k, so you actively have to pull down the input to GND to see a difference...
    Best regards,
    GerdW
    CLAD, using 2009SP1 + LV2011SP1 + LV2014SP1 on WinXP+Win7+cRIO
    Kudos are welcome

  • USB-6009 Digital Output Current

    You need to have all those grounds connected together - USB-6009 Digital Ground, ULN2003 GND, and the power supply ground. In this case it will not matter how they are connected.  If they are not connected, then one of the devices could be damaged.
    Lynn

    Hi, I'm trying to increase the voltage of the digital outputs of USB-6009 device. I read a couple topics about using a relay but I could not manage it.
    I was thinking to use 5V supply on the card since it has 200mA current on it, but when I use it with open-collector output, it can not switch the relay. When I measure the current between
    5V and ground: 200mA,
    5V and output, I read a value around 30-40 mA.
    Why can't I use that 200mA with an output? This is the relay I'm using.
    If this is not possible, can I use an external 5V supply (with more current) and a digital output to switch the relay without damage the 6009?

  • USB-6009 analog input at certain voltage

    i am using USB 6009
    i want to use a certain voltage to activate something.
    i want to activate a pop up vi inside a case structure at a voltage of 2.9V.
    i want to de activate the case structure at a voltage of 0.13mV - 0.16mV . then the sub vi will close.
    How to setup the DAQMX?
    can provide any help ??
    example will be good.
    pls show where to find the icons. thank you

    Hi Ace,
    There are several examples from the LabVIEW Example Finder (Help»Find Examples...) that describe using limits. I searched "limits" in the Example Finder and found several examples that might help, such as Limit Testing Measurement.vi, Waveform Scalar Limit Comparison example.vi, and Limit Example.vi. In each, you would have to modify it to include data acquisition, but it shows how to take sampled data as you would get from data acquisition and perform a limit test. The Express VI that Jennifer O. suggested will probably be the easiest route, but there are other VIs that could suit your needs, as seen in the other examples. 
    As far as state machines, there is a template built into LabVIEW that can give you a starting point for creating your own state machine. Under the File»New... menu, you can choose the state machine template under VI»From Template»Frameworks»Design Patterns»Standard State Machine template.
    Please let us know if you have any specific questions we can answer about configuring your data acquisition or about a specific VI. I hope this helps!
    Regards,
    Missy S.
    Calibration Engineer
    National Instruments

  • How to check 6 digital signals change value at the same time with PCI-6229??

    I am using DAQ card PCI-6229.
    Channel 1 generate a digital signal.
    Channel 2,3,4,5,6,7 acquire digital signals.
    I want to check:
    1. Whether the rising edge of Channel 2,3,4,5,6,7 occures at the same time;
    2. The time delay from the rising edge of Channel 1 to the rising edge of Channel 2,3,4,5,6,7 is within a certain range.
    I know I can use counter to get the two edge seperation time delay. But I only have two counter, it is two time-consuming if I check one by one.
    I don't know how to check the rising edge of 6 different channels occure at the same time.
    Does anyone has any suggestions?
    Thanks

    Hello,
    You can use the DAQ card's digital input change detection circuitry to detect changes in the input, you can then use a counter to measure the relative time between samples. Please read Page 6-9 DI Change Detection Applications for more information. Let me know if this helps
    Christian A
    National Instruments
    Applications Engineer

  • USB-6009 pulse train generation with digital output....

    Hello!
    I've bought a new USB NI-Card (USB-6009) and now I'm trying to adopt an old vi that uses traditional DAQ drivers. I wrote that vi for a PCI NI-Card (PCI-6024E), which has two counters to generate two pulse trains simultaneously. Now I've only one counter and that's why I'm searching for a good way to create pulse trains using a digital output! The pulse trains are both ranging between 100 Hz and 100 kHz.
    I'm sure somebody has an idea how I can solve the probem in the best way
    Kind regards,
    Peter

    You can't do it with this low cost board. Both digital and analog outputs are software timed only. The analog out is rated at only 150  samples/sec and the digital is about the same. You can't even use one of the counters because it is not a hardware timed counter output. It is an event counter only as an input.

  • Usb 6009 output changes

    Hi, I'm using a NI USB 6009 device.  I am using the analog output to drive very small currents (less than 1 micro Amp) through a 1 MOhm resistor.  I find that the output often changes significantly when I begin to acquire data, or if the computer is doing something, such as fitting data, or even if I am simply opening other files or programs.  Any advice?
    Thanks!
    Micah

    Hi, thanks for the responses.
    I'm outputing a DC voltage with values typically ranging from 0.1 V to 1 V.  The signal goes through a 1 MOhm resistor in series with a coil for producing very small magnetic fields applied to an atomic magnetometer.   It appears that the output changes by tens of millivolts, as recorded by a yokogawa oscilloscope with input impedance of 1 MOhm.  The coil and scope are both grounded.  I am using only a single input channel on the USB6009, coming from an SRS voltage preamp with output impedance of 50 Ohms
    I can also infer that there are changes in the current when the computer "does something" by looking at the signal in the atomic magnetometer.   
    Perhaps it would help if I shunted the output with some smaller resistor, say 10kOhm?
    I will look at the document you mentioned.
    Thanks again.

  • Usb 6009 multiple analog inputs

    I am currently attempting to sample two different analog inputs at different sampling rates using a USB 6009.  I keep getting the 'resource reserved' error and am wondering if this is not possible using this DAQ.  Questions:
    1.  Does creating two analog input channels on the device cause this error?
    2.  Is it possible to sample at different rates on channels created in the same task?  (i am trying to 'slow down' the second analog input to display switch points to a customer)
    3.  Running multiple analog inputs using independent timing would be better achieved by switching to a higher end DAQ?  If so which would you recommend?
    I have attached my vi.  Thank you in advance for your help. 
    I surf therefore I am....
    Attachments:
    demo_nolvl.vi ‏27 KB

    The DAQ boards only have 1 timing clock for the analog inputs/outputs.  So you can only have 1 sample rate on a given card.  I would recommend just sampling at the highest of the desired rates in a single task.
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines

  • 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

  • How can i connect 24VDC to digital input (usb 6008)

    hello,
    how can i connect 24VDC to digital input (usb 6008), is it possible with some optocoupler?
    thanks

    The 6008 is a static DIO, so speed shouldn't be an issue.  Therefore an optocoupler should work.  Just make sure you get one the meets your specs.
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines

  • How to I connect Sourcing digital output from My Interface Board to NI USB 6501 channel configured as Digital input

    When I connect an input to DI channel of USB 6501 card  from my board which has sourcing Output t, iIn the Off state it is not pulled down properly. The volatge on the port in is 2.1V -2.5V based on the pull down resistor on my board. I suspect that  it acts as a voltage divider.
    The state on the card is still show as "HIGH "state, even my sourcing output driver has a pull down  resister.  when I use this interface board for PCI mseries devices it works fine. Do the pull down resister on my sourcing output is not worth. Is this because of pull up resister 4.7k inside USB card 6501.
    USB 6501 specifications shows the Digital input accepts both source and sink modes. By default the card is in sourcing digital input mode. How do we can convert this in Sinkind digital input mode.
    Could anyone Please give your suggestions to overcome this issue .
    Thanks you.

    You really should not have both a pull up and pull down on the same line.  Really weird things can happen.  If you insist on having a pull down on your board, then I highly recommend putting a digital buffer chip between the DAQ and your board.
    Some boards with DIO have a pull up, while others have pull down.  You just have to watch the specs.
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines

  • Can't change sample rate for digital input on Mac Pro

    Hello all,
    on my Mac Pro with 10.4.10 I can't change the sample rate for the digital input. Whenever I choose 48000 or 96000 Hz it returns to 44100 Hz after a few seconds. Feeding a 24 bit/96000 Hz signal from an external ADC into the optical input doesn't help. No input signal is available for digital recording software such as Sound Studio or Cubase. After changing the sample rate in audio midi configuration to 96000 Hz the sound can be heard for a few seconds but when the setup returns to 44100 automatically the signal is, of course, lost.
    I've deleted all relevant preferences and restarted with resetting paramter RAM. Still the same. With external hardware such as M-Audio Firewire equipment setting the sample rates works properly.
    Thanks to all for helpful clues.

    Hi,
    when E&M signaling is configured on digital interface like the VWIC is, 2 or 4 wires operation is not applicable because there are no wires at all, and reported only for compatibility with the analog E&M card.
    Consequently, you cannot configure that and it will not make any difference to effect of the connection.
    Please rate post if it helps!

  • Callback for a state change on digital Input 6025E

    Hello All,
    I need to have a callback function invoked when a state change occurs on serveral digital inputs (interlocks, kill button etc.).
    I am using a PCI-6025E and traditional NI-DAQ. For test purposes I have connected the output P3.0 to the input P4.0 using a SCB-68
    terminal block and initialize the ports in the following manner:
    void initfunc()
    long nPattern;
    DIG_Prt_Config(1, 3, 0, 1); /* port 3 output */
    DIG_Prt_Config(1, 4, 0, 0); /* port 4 input */
    DIG_Out_Prt(1, 3, 0xff); /* set all outputs high */
    DIG_In_Prt(1, 4, &nPattern); /* returns 0xff */
    Config_DAQ_Event_Message (1, 1, "DI4", 8, 0xffff, 0xffff, 0, 0, 0, 0, 0, (unsigned long)(&myCallback)); /* callback on state change */
    Now later in my program I perform the following (again as a test) when a button is pushed on a dialog box.
    CDigioDlg:nKillBtn()
    DIG_Out_Line(1, 3, 0, 0);
    DIG_In_Prt(1, 4, &nPattern); /* returns 0xfe */
    My callback funtion never gets called on the state change. Now looking at the documentation for the Config_DAQ_Event_Message it says that
    it notifies traditional NI-DAQ applications when the status of an asynchronous DAQ operation (initiated by a call to DAQ_Start, DIG_Block_Out, WFM_Group_Control, and so on) meets certain criteria you specify.
    Eventually this routines will need to monitor these input lines continuously within a DLL. I want to call an initialization function within
    the DLL to configure the board and callbacks then return. I want the callback functions within the DLL to handle these state changes.
    Any help would be greatly appreciated,
    John

    Hello John. Thank you for contacting National Instruments. It looks like you are using the callback incorrectly. I found an example that uses the callback in Visual C++ with Traditional DAQ. This isn't the same setup as you are using, but it should give you a good idea of how to setup the callback. Please let me know if you have any questions. Have a great day!
    Marni S.
    National Instruments
    Attachments:
    DAQEvent3VC6.zip ‏5 KB

  • Fpga detecting falling edges on two digital inputs

    Hello LabVIEW-Fans,
    I spent a lot of time for fixing my problem...
    I want to detect falling edges on two digital inputs. The two inputs sample an identical signal. So the edge detection should
    detect the both simultaneous edges at the same time -> in the same loop iteration. But many times the edges are detected
    in two following loop iterations.
    My goal is to bring the two occurred edges together. No matter if there are differences between 1 and 10 loop iterations. If they
    occur in that time window they should be handled as common edges, if not as not common edges.
    Import too is, that the timedifferences between two falling edges are calculated. These timediffs should belong together like
    the common edges. They must be timeconsistent.
    How can I realize that the edges in between the 1-10 loop iterations of the two channels are accepted as common edges?
    Thank you for your help.
    marco
    Attachments:
    screenie_fpga_TwoEdgeDetect.png ‏15 KB

    Hi M,
    Thanks for the post and I hope your well.
    So to clarify,
    You have Two signals which could have a drift of X number of edges. But because these are related you only one to registor this event in software once, if two edges (one on each channel) happened within X edges?
    For example,
    Channel A has an Edge then 2 pulses later Channel B has an Edge = Software sees 1 edge?
    Channel A has an edge then 12 pulses later Channel B has an edge = software sees 2 edges?
    Sorry if I haven't understood.  
    Kind Regards
    James Hillman
    Applications Engineer 2008 to 2009 National Instruments UK & Ireland
    Loughborough University UK - 2006 to 2011
    Remember Kudos those who help!

  • Change digital input to frequency

    Has anyone figured out an easy/slick way to convert a digital input into a frequency/Rate?
    I've got this prox switch out on the plant floor that monitors whenever a part goes by. A part goes by at regular intervals, except that once in a while a part may not be there (removed from product stream for QA reasons). Ok, so I want to know (on average, say in the last 2 minutes) what is the rate in parts per hour.
    I guess I kind of want an Derivative Object that will accept a digital input (logical) instead of numeric.
    I am currently using a POT as the input to a Derivative Object (updating in 2 minutes, and a time unit of 1 hour), and Incrementing the Pot with the Digital Input from the PLC. However this only works until the POT max's out, then I automaticly reset the pot to zero, and start incrementing again.
    I just figure it should be "cleaner" than this solution. Any ideas?
    Rich Anderson
    Automation Controls Engineer
    Anamax Group

    Hi,
    Instead of using a Pot that is updated by the Digital input, you could use a counter. On that one you don't need to specify a max and you can make it have a reset programmatically.
    That should be easier and better to use.
    Ricardo S.

Maybe you are looking for

  • Using interactive .gif animations in Dreamweaver

    If anybody could help me out with this, it would be really appreciated. This doesn't seem like it should be too complicated, but I'm having a really hard time doing it. Here's what I'm trying to do - I want to have a series of buttons on my page, whe

  • Mail wont stay online HELP!

    I cannot get my mail to stay connected. It either keeps going offline or keeps asking me for my password. When it wont connect it says to verify password and username (which are correct every time). When it has server issues it just says pop3 and por

  • Third party apps and peripherals to blame?

    I am wondering what applications and external add-ons are working and which ones are not? It appears to me a lot of people are having problems with external hard drives and previously installed applications. I did a clean install and have only added

  • Mark of the Web and Explorer stupidity

    So, we are working on a very clever little program that acts as a browser independent bookmark util, and strips Google's tracking data.  It's not a screen scraper.  It's a bookmark utility. It can also download images to local files. As a browser ind

  • Macbook pro & SD cards

    My macbook pro's SD card slot is not reading cards. It used to work fine. And the same card works on another Macbook. Any ideas to fix it?