Counting TTL pulses using USB 6008

Hi Folks,
I am trying to setup a performance monitoring VI for a manufacturing line.
I am going to use a sensor at the end of the line to count the number/rate of boxes that come of the line and perform a calculation to give us the productivity.
The problem I have is that I would like to be able to scroll back over time to view historical productivity. Also I would like to be able to insert reason codes for downtime and print off a report at the end of the week showing a productivity graph and downtime associated with the line.
I am new to Labview and I am not sure if this can be done, any help would be appreciated.
Thanks
Tony.
Attachments:
K2 Productivity-s.vi ‏60 KB

Search 'count'.  Count Digital Events.vi is the most basic one of interest.
Of course you won't find an example of counting pulses, analyzing the data and creating a report.  You'll have to put all the pieces together yourself.  This is just a start.  The good news is that LabVIEW is designed to do just the type of thing you're needing and your app will be quite simple to contrive once you get the hang of LabVIEW.  I suggest going through the many tutorials to get the basics down before you try to architect your program.
Using LabVIEW: 7.1.1, 8.5.1 & 2013

Similar Messages

  • How to count TTL pulses during 100ms ?

    I need to count TTL pulses coming out of an instrument (particule
    counter). The pulses appear randomly. I must count how many pulses
    appeared in the last 100ms, and so on, every 100ms. I don't want
    cumulative counts, but the number of events every 100ms.
    I need a hardware clock, so that the counting pace cannot be disturbed
    by Windows making some weird, unrequested, CPU-hungry task.
    I fact, I need to do that for 2 identical instruments of the same kind,
    and I have 2 cards with 2 counters each, total 4 counters. My idea
    would be to use 1 counter as the clock for 2 other counters, but how to
    trigger the counter value read ?
    Thanks.

    Hi,
    In the example I gave you, you need to supply the TTL you want to count the pulse (connected on pin 37) and a TTL "clock"  which is connected to PFI0. The TTL on PFI0 permits a hardware timing (100ms for example) to count the edges that occur on the TTL source.
    If you do not need hardware timing, have a look at the example attached. You only have to connect the TTL source and the VI counts every 100ms (software timed) the edges that occur durind those 100 ms.
    Hope it will help you,
    Regards,
    David D.
    Application Engineer - NI France
    01-02-2006 01:26 PM
    Attachments:
    Compatge des fronts toutes les 100 ms.vi ‏61 KB

  • Counting TTL pulses from 10 Hz to 3000000Hz with LAB-PC-1200

    I want to count TTL pulses from an electron analyser. How can I use the DAQ wizard to connect the analyser to the PC-1200 and look if it works?

    Augerspectro,
    The counter chip used on the Lab-PC-1200 is the 8253. Thus, you will be able to use any of the 8253-counter examples available in LabVIEW. To count pulses, I would suggest that you examine the Count Events (8253).vi example. With regards to the required hardware connection, this is discussed in the device's user manual (link available below).
    Lab-PC-1200/AI User Manual
    Good luck with your application.
    Spencer S.

  • Using USB-6008 software timimg Generate waveform

    I am using USB-6008 device. Base on it's User Guide, this device on support software-timed and maximum update rate is 150 Hz.
    By place a time delay VI for 1ms, I have a 1.660Hz sine signal. Is this wrong for place a time delay VI for software timing?
    I would like to generate a 60 Hz signal by using software-timed VI on USB-6008 device. How should I do?
    Thanks a lot.

    DephinTW,
    The update speed of the USB-6008 is largely dependent on the speed of
    you computer as well as anything else on your USB bus. If you are using
    an older computer or have other USB devices on the bus, you may not
    achieve this rate. In order to output a 60Hz signal, the minimum output
    sampling rate is 120Hz. This corresponds to an 8.3 msec. delay between
    samples. Instead of using the "Wait" VI, you should try using the "Wait
    Until Next ms Multiple" VI. Place this in parallel with your
    generation. This will synchronize the output with multiples of the PC
    clock, rather than waiting for a fixed amount of time, irrespective of
    code and USB overhead.
    Hope this helps,
    Ryan V.
    National Instruments
    Ryan Verret
    Product Marketing Engineer
    Signal Generators
    National Instruments

  • What amplifier will recomended for my k-type theromocoupler using usb 6008

    I recently do a project about temperature control system using usb 6008, according to the spec, the minimum AI range is +/- 1V and the thermocouple giv the voltages in jz a mV, so what kind of amplifier will be recomamded? is there any amplifier chip set that available ?

    Analog Devices AD594/AD595 Monolithic Thermocouple Amplifiers (Type J / Type K)
    This would give you a conversion of 10mv per degree C using a single +5v supply you could get to a couple of hundred C
    I get 11 bits of resolution available for the +/- 4v range (11 because I can't see a negative supply available so we are only using one side of the differential range).
    That's a resolution of 2048 bits over 4v giving 0.001953 v per bit
    The devices above give 10 mv per degree C so you would have about 0.2 C resolution and a maximum temperature of around 450 degrees C an minimum temperature of 0 degrees C.
    The device draws about 1mW so you should have no problems with power consumption. (Hint Earth / Ground loops might be a problem).
    I should add that whilst I have used this device many hundreds of times, I have never applied it to the USB 6008.
    http://www.analog.com/en/prod/0%2C2877%2CAD594%2C00.html
    Message Edited by Conseils on 05-08-2007 08:51 PM
    Message Edited by Conseils on 05-08-2007 08:52 PM
    Attachments:
    46185785AD594_fbs.gif ‏17 KB

  • Rpm sensor diagram using usb-6008

    Hi All,
    Attached is my block diagram for the RPM sensor that I wan to create. What I'm trying to do is to get the analog input and do a pulse calculation within 60 seconds, and my RPM would be how many pulse * 60. I don't know whether I'm doing it right or not, but I have a feeling that I need to use the digital input rather than analog input. Any comment?
    Thanks
    Attachments:
    rpm sensor design.vi ‏70 KB

    Hello Dadsf,
    Welcome to the NI Discussion Forums!  From your post, you would like to be able to count the number of pulses from your sensor that occur during a period of time and convert this to RPM.  Let me know if I have interpreted this incorrectly.  Your USB-6008 manual indicates that the device has a built in counter that can be used to count falling edge signals.  If your sensor outputs digital signal this would be a good way to go.  You can take the number of pulses that occur over a certain period of time (perhaps between two loop iterations) to find the number of pulses per second.  The longer the period of time you acquire pulses for, the more accurate your average RPM will be.  This will be at an expense of how often the user is updated with a new RPM value.  Check out the links in my signature for some great information on how to get started with DAQmx and what all of the different terms in the DAQ Assistant mean. 
    I noticed that your DAQ Assistant was set to 1 sample on demand.  What this does is causes the USB-6008 to read a single sample from the analog input during each iteration of the loop.  I am not sure if that is the behavior you are looking for.  Another option would be to setup the task as continuous hardware timed analog input (change the Acquisition mode to Continuous Samples with you desired sample rate and the desired number of samples you would like to read at a time).  This will give you a waveform of data that should show the pulses over a period of time.  You could then count the number of pulses that occur over the length of the waveform.  This would be the equivalent of the number of pulses per second that could be converted to RPM.  This method requires a little more processing than the first method, but could give you a little better accuracy.  Post back if you need more info. 
    Regards,
    Browning G
    FlexRIO R&D

  • Counting TTL pulses at high speed

    Hi all,
    I am using PCI-6221 board with DAQmx to count the number of TTL pulses (which varies in its frequency between 0Hz to 10MHz) at a high speed (200,000 samples/sec.) and I am having a problem when the TTL pulse frequency drops below a certain level.
    I am using CTR0 to generate continuous pulse train at 200kHz frequency to feed to CTR1 Gate input. I verified that the pulse train is being generated fine.
    I am using CRT1 with buffered counting to collect the count for 200,000 samples at a time (duration of 1 sec.). I got the example code (Cnt-Buf-Cont-ExtClk) and pretty much used it as is.
    CTR1 Gate is coming from CTR0 Out, which is 200kHz pulse train with 50% duty cycle, and CTR1 Source is the TTL signal that I am trying to count. At first, I thought that everything was working fine with the Source signal being at around 5MHz. Then, when I had the Source signal down below about 300kHz, I noticed that the program is taking longer than 1 sec. to collect the same 200k samples. Then, when I got the Source signal down to 0Hz, the program timed out.
    I am guessing that somehow the counter is not reading for the next sample when there has been no change to the count, but I cannot figure out why and how.
    Any information on this and a way to get around would be greatly appreciated.
    Kwang

    One thing you can try is to set the counter input CI.DupCounterPrevention property, this setting will filter the input, it is possible that when the ctr 0 is slow then many of the values you are counting become zero as well and are filtered out, since they are nolonger points, the counter will not collect enough points before the time-out occurs and the counter input read times out.  I am not sure if this is your issue but I found out the hard way that this occurs when I switched to daqMX where this feature was added.  Let me know if it worked,
    Paul
    Paul Falkenstein
    Coleman Technologies Inc.
    CLA, CPI, AIA-Vision
    Labview 4.0- 2013, RT, Vision, FPGA

  • Why not use USB 6008?

    Hi,
    I have an application that requires me to sample 6 AI channels at 1 kHz.
    Processing every 20 ms.
    I also need to output a PWM on 3 channels.
    Normally I'd use PCI-DAQ cards.
    e.g. a PCI-6023E and a PCI 6601 (timer/counter).
    This costs about 700€.
    Why shouldn't I use a NI USB 6008 (145€)
    and two NI 6501 (99€).
    Is there a big difference in programming and performance?
    Are those devices all USB-2?
    Because If I sample at 10Khz, I do not suppose that all that
    data can go over a USB1-bus.
    Thx !

    Hi!
    My observation is that a 6008 will work for you if you only need to acquire 6 channels at 1 kHz and you can handle 11 bits of resolution (to use six channels you must be in single ended mode, which losses one bit of resolution on this board). The other possible disadvantage of the 6008 is that you will have to learn to use DAQmx Base, if you haven't done so yet. However, if you are familiar with DAQmx, this should not be too difficult.
    As for digital output, using two 6501's may not work for you. They will be software timed digital outputs, where it seems that you were looking for hardware timed outputs before (6601).
    Both of these devices are USB 2.0 Full-Speed, which can handle this amount of data.
    Good Luck with your project!
    Justin

  • Counting TTL pulses within specified integration time

    Dear all,
    I have a PCI-6014 board, and I use Labview 7.1 and would like to do the following task with DAQmx7.4:
    Analog source:  analog square wave (or = 1Hz TTL pulses) produced by a function generator
    Signal: photon signals from a photomultiplier (random TTL pulses)
    I would like to count the photon signals at 100ms integration time, repetitively. But I don't want cumulative counts, just the number of photons (TTL pulses)  in every 100ms.  I would also like to make sure that I synchronize the counter with the analog source, i.e. to make sure I get exactly 10 data points in each analog cycle. ( I can't use the computer to start the function generator and it just keeps running., so I want to make sure I start counting on the starting edge of the analog wave.)
    I used to do this with the traditional DAQ and connected the analog source to the "GATE" pin of the counter , so i could count "while gate is high" ( or while gate low, or count on rising edge/ falling edge. ) However I found some problems and I think my counter wasn't counting correctly, and I would like to rewrite the task  with DAQmx anyway.  Ideally I would like to separate the signals that occur in the first 1/2 and the second 1/2 of each analog cycle. But if that is not quite achievable, I can do the separation later when I process the data, provided that I know each 10 data points from the counter correspond to each analog cycle.
    I have read several threads on the discussion board, but I still couldn't configure my applications using those examples.
    Also I wonder if the "Arm Start Trigger" function is not available on my PCI-6014 card ? Because I can not find it in the Start Trigger property node.
    Thank you very much for your reply. Any hint or advice would be greatly appreciated.
    Joyce

    ...(Continued from prev post due to 500-char limit)
    Now, here's a proposal for a method that should be able to work, though it'll require more data and more processing.  One key area to watch out for under DAQmx is the property node for "Duplicate Count Prevention."  The behavior changed between 7.1 and 7.3 (on E and/or M series, but not on TIO-based counters), then the defaults changed in 7.4, and something changed yet again in 7.5
    Bottom line: you can set it to True or False.  One setting will allow you to buffer up 0 values for intervals where there are no Source signals (photon events) within a sampling period (10 Hz hw clock).  The other setting will not record anything in the buffer for those intervals.  Clearly, you need the former setting, so you can always experiment to see how it behaves.  I kinda gave up on trying to interpret it, understand it, or keep up with the differences by DAQmx version and DAQ board.
    Ok, here goes:  I'm going to propose that you actually oversample by about 10x and that you capture the Analog square wave in sync with your photon counts.  Then your post-processing can determine for sure which samples correspond to Analog Square High and which to Low.  You'll also be able to adjust for times when you get 1 too many or one too few samples in a square wave cycle, due to having independent un-sync'ed timebases.
    So on one counter you generate a 100 Hz clock.  The other one is programmed for buffered period measurement using the 100 Hz clock as a SampleClock and the photon pulses as the Source signal (this must be set up using a DAQmx Channel property node I believe).  Remeber to be careful also about the DuplicateCountPrevention property.
    You would further setup an AI task using the same 100 Hz clock as a Sample clock.  Be sure that the 100 Hz clock task is started after starting both the other tasks.  Also, be sure to always read the same # of samples from both tasks to keep the counter period and AI data in sync.
    Voila!  You now generate a data record of # of photon pulses for each 10 msec interval along with the voltage of the analog square wave at the end of that interval.  A bit of post-processing and you're covered.  If you're not required to manipulate data while the acq tasks are running, you can surely afford to bump up the oversampling rate considerably.  The main advantage is to gain resolution on the time of transition of the analog square wave.  For any interval ending with a TTL state change, you won't know where within that interval the transition occurred.
    -Kevin P.

  • Counting TTL pulses from A between TTL pulses from B

    I have two sources of TTL pulses. I need to count, from a c/c++ script, how many TTL pulses are received from source A between each of the  TTL pulses received from source B.
    I have a PCI-6229 connected to a BNC 2090A, and both of my TTL pulses sources are connected via BNC plugs.
    Is there any function that can do that?
    I tried to get an example script using the DAQ assistant from LabWindows, selecting acquire signals -> counter input -> Edge count. The function that I got as a result was DAQmxCreateCICountEdgesChan, and I am afraid that it only takes the counter as an argument and not the second digital input that marks the intervals.

    From your description it seems to me that the best option is to use two-edge separation measurement. I am not on a PC with CVI installed so I cannot point you to a specific example but this tutorial gives you a brief explanation and some guidance on examples to look at.
    Proud to use LW/CVI from 3.1 on.
    My contributions to the Developer Zone Community
    If I have helped you, why not giving me a kudos?

  • Counting ttl pulses

    Hello Everyone,
    I am attempting to continuously record (i.e. time stamp) only positive (i.e. 'Logic High' event) TTL pulses from a PMT using a PCI-6602 board via a BNC-2121.
    From reading the LabVIEW tutorials/examples it seems that I should be able to get very high precision (15 digits) from the "Get Date/Time In Seconds" VI. I need to be able to record times to the microsecond (at least). Yet when I look at the data it appears that for every digit less than a millisecond either a 9 or a 0 is recorded, which leads me to believe that I can't get better time resolution than a millisecond. Is there anything I can do to change this?
    Assuming that I can get this to work I would also like to simultaneously monitor and record a second PMT channel. Any hints or tips would be great!
    I've attached my very basic VI below.
    Cheers,
    CJ
    Message Edited by CJKS on 05-22-2006 11:53 AM
    Attachments:
    PMTcounter.vi ‏126 KB

    Yes the simpliest way to do what you want is to count the time between rising edges using a counter (the 6602 has 8 80 Mhz 32-bit counters).  Yo will not use digital io but time counting.  The gate of your counter will be the TTL/Cmos pulse from your PMT and the source of the counter will be the 6602 master clock 80Mhz, so you can count clock ticks between photons, now you have a 12.5ns time resolution.  You can use the system clock to get a time zero if you would like to use absolute time.  The olny thing to keep in mind is that you will be limited to a maximum time between pulses of 2^32/80M or 53 seconds, you will get an overflow of your counter but usually this is not a problem with photon counting.  You will be also limited to a maximum photon rate of about 20Mphoton events.sec this is also not a problem since the interesting photon events seem to happen between these time scales.  if you want a longer time scale you cvan always casceds 2 counters to get 64bit resolution but this is probablu not necessary.  Look at the buffered period measurment examples.  You can easily scale this to 8 counters with 8 PMTs if desired with your curent hardware but this gets expensive.  Goodluck.
    Paul
    Paul Falkenstein
    Coleman Technologies Inc.
    CLA, CPI, AIA-Vision
    Labview 4.0- 2013, RT, Vision, FPGA

  • Count ttl pulse only over 2 V

    Hi I have a problem while I was trying to count a ttl pulse by using the DAQ Assistant. The problem may be simple but I just cannot solve that since I am new to LabView.
    There is a TTL pulse generated from our APD which is about 30 ns width, 5V. I want to use LabView to do the photon counting. However due to the noise, I would like to set a count limit of 2V, so the software only count the TTL pulse which is greater than 2V. But I cannot do that. There is no option to set the limit.
    And our hardware is BNC-2110 and PCIe-6323.
    Can someone help me with this? Thanks.
    Solved!
    Go to Solution.

    Okay so perform a finite or continous read of your analog input.  Then you can perform a threshold, where all values below 2 become 0.  This can be done many ways but I'd suggest an auto indexing for loop and using a select function in the for loop.  Then you can perform any normal edge detection you normally would to count pulses.
    EDIT: Post some code if you can.
    Unofficial Forum Rules and Guidelines - Hooovahh - LabVIEW Overlord
    If 10 out of 10 experts in any field say something is bad, you should probably take their opinion seriously.

  • DC motor closed loop control through labview using usb 6008

    Hello
    i am doing a project in which i want to control the speed of a DC motor (PID control) through labVIEW 2010. I am having a DC motor, a drive unit that regulates the voltage to the motor by getting analog voltage from 0 to 3.3V ( it can be used for both directions) and i also have a NI usb 6008 board. The problem is that i can't feed the usb 6008 with the digital signal from my hall effect speed sensor. Is it posible with this setup to control the motor?? I can also try to use the pulse as analog input and trasform the frequency into rpm's. Then i am thinking of generating an analog signal to feed the motor drive. If you have any further suggestion of a probably better hardware setup would be more than helpfull to me.
    Sincerely
    Jason Chaloulos

    Hello Michael
    Thanks for the reply. I came across those topics before and all of them are trying to generate a PWM signal as output i want to use just an analog signal output so timing on the output is not that important i guess. i am struggling on getting the frequency from the digital input signal that my hall effect sensor generates. Since the maximum speed of the motor is 3000 rpm and with my tooth wheel the maximum  output frequency of the sensor will be 300Hz which i see its way less than the limitation of my ni board. Is there any tutorial documentation that might help me with this one ? Thank you in advance.
    Kind regards
    Jason

  • Using USB-6008 on LIS331 Accelerome​ter

    Hi, I am looking to monitor my project with a LIS331 using the USB-6008 dac. Would this dac unit be acceptable with this accelerometer? 

    swong46,
    I would recommend using a USB 63xx series DAQ device. You might also be interested in the USB 8452, which is a dedicated I2C and SPI device. 
    I can also put you in touch with some of our sales engineers, who would be the most knowledable about your options. Shoot me a PM if you're interested, and I can give you a number to call.
    Kyle T.
    Applications Engineering
    National Instruments

  • Cannot use USB 6008 in Lab VIEW... is in Devices on Comp however

    I was in class the other night, and was running a VI.  We went to lab, and without shutting down labView, my partner plugged in my USB-6008 DAQ.  SInce that time, the 6008 will not show up.  I have a message about having no supported devices.  I am using DAQmx 8.0 that came with my student version, and have reinstalled the LabVIEW 8.0 and the DAQmx 8.0  I still cannot get LabVIEW to recognize the DAQ.  When I plug it in my hardware profiles recognize that it is hooked up, but LabVIEW will not.  Also I have uninstalled it, and plugged it in, reinstalled it using the auto hardware install wizard, and still nothing on LabVIEW.  The DAQ has the flickering green LED, and works on other laptops.  Also my flash drive works correctly in all of the USBs, so I do not think that could be the problem.  I just really would like to get this to work again, but as I said the DAQ is not recognized by MAX or DAQmx inside of LabVIEW.  Any help would be greatly appreciated...
    Thanks

    Hi,
    You might want to try MSI-Blast.
    Have a look at this thread.
    http://forums.ni.com/ni/board/message?board.id=170&message.id=108288&query.id=113978#M108288
    Patrick Allen

Maybe you are looking for

  • I am not able to use two backing files in same portal page

    hi to all i am using backing files in remote portlet. but i have two portlets in my portal page and in both i need to use backing files. i used seperate backing files for both the portlets but only one works at a time. please help me out frnds.. did

  • Mouse cursor disappeared??

    I can't locate my mouse cursor! It has randomly disappeared. It is working as when I right click the menu appears but I can't see my cursor to use my computer. I also don't know how to restart my computer without the use of my mouse. Can anyone help?

  • Please, get me out of this hell (NetBeans error)

    Hello all. I'm just done with a 3 month proyect, and I just lost it all. I'm so worried about what I have done, please let me explain clearly so maybe someone can help me. So I had finished my proyect in NB, and I decided to change the default name o

  • Why is it saying my username is disabled

    Why is it saying my username is disabled

  • Import RFC error

    hello I am trying to import an RFC and recieve this error. You cannot create new objects since the system is not the original system of the software component version any ideas? Kfir