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?

Similar Messages

  • 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.

  • 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

  • How do I count arbitrary pulses from an oscilloscope with labview

    I am looking at arbitrary pulses on a TEK 2024B oscilloscope.  I want to use LabView to count those pulses and record a time stamp for each pulse (perhaps to an excel spreadsheat).  The duration of the measurement is over ten minutes and the pulses, on the average, occur once per millisecond.  How do I count/record these pulses with LabView?

    Jay,
    I would start by downloading the Instrument Driver for the 2024B from ni.com/idnet It should have the functions that the scope is capable of implemented there. If you have problems using the driver please post back.
    -Marshall R
    National Instruments
    Applications Engineer
    One stop for all your NI-VISA Support
    GPIB Support has a new homepage

  • Synchronous acquisition 4 analog signal and independently count TTL impulse

    Hello!
    I'm have NI DAQ board PXI-6115. I have problem:
    Need synchronous acquisition 4 analog signal and independently count TTL impulse. When value counter will, at example, 5000 acquisition must stop. I'm read program in LV 7.1 but have a problem.  In HELP write:"You can create only one counter input channel at a time with this VI because a task can contain only one counter input channel. To read from multiple counters simultaneously, use a separate task for each counter". I make two different task, but error not disappear.
    I don't know how escape this error?
    Program VI with Front panel screen-shot in attach archive.
    Message Edited by _Pavel_ on 05-23-2007 09:06 AM
    Attachments:
    Progr.zip ‏80 KB

    Hey Pavel,
    Thanks for contacting National Instruments support.  Your program, in it's current state, is attempting to generate a finite pule train and count edges on the same card.  Finite pulse generation is a two counter device, where one counter generates the pulse train and the other counter gates the generation, or goes high when the generation is to start and low when it is finishes.  So no matter which counter you select for the count edges task you will get the error you describe. 
    Is it possible to use the pulses that you are counting as an external clock?  If so then you could just generate 5000 pulses and you would only acquire 5000 samples. 
    I have attached a modified example from your code.
    Let me know what you think.  It only acquires 5000 samples as desired.
    Regards,
    Kenn North
    Senior Product Manager - Search, Product Data
    http://ni.com/search
    Attachments:
    Progr.vi ‏58 KB

  • Unable to count fast pulses with DAQ(pcmcia card)AI-16E-4, using the example vi

    I am using the AI-16E-4 PCMCIA Daq card to count pulses from a device that has an open collector pulse output. I am current just trying it out to see if I can get it to count the pulses correctly before I go ahead and further develop the program. I am using the Example program for counting pulses with this device.
    What I am finding is that when I increase the pulse rate above about 20,000hz it slows down and then stops counting pulses. The documentation for this device states the max input frequency is 20mhz, therefor it should be able to count the pulses I am planing on providing. The fastest rate the device I am connected is around 2.mhz. Can someone tell me how to get the AI-16E-4
    to count these open collector pulses.
    Attachments:
    regulation_tester.vi ‏89 KB

    Hello;
    You need, first of all, to provide a pull up resistor for the open collector device, in a way that its high state fits within the TTL levels.
    Once that is done, you just connect its output to the counter source input. The device should be able to go up to 20MHz, with no problem.
    Regards
    Filipe A.
    Applications Engineer
    National Instruments

  • Who worked with ICS' Model 4896 GPIB? I can not count the data from the module. Can prompt as it to make. It is desirable with examples (data read-out from the module and data transmission between channels. It is in advance grateful.

    I can not count the data from the module. Can prompt as it to make. It is desirable with examples (data read-out from the module and data transmission between channels. It is in advance grateful.

    Hello. Most of the engineers in developer exchange are more familiar
    with NI products. Contacting ICS for technical support is a better
    course of action.

  • How to count digital pulses?

    I am using usb-6501 to read in 12 distinct digital pulses and want to know how to count the pulses. The 6501 has only one counter channel so I am looking for a software/labview program option to count pulses for each channel individually. 

    Do you need to know when they change or just how many times they changed? Also how fast are they changing?
    Mike ...
    Certified Professional Instructor
    Certified LabVIEW Architect
    LabVIEW Champion
    "... after all, He's not a tame lion..."
    Be thinking ahead and mark your dance card for NI Week 2015 now: TS 6139 - Object Oriented First Steps

  • Count of rows from different tables.

    Hi Friends,
    I have 4 tables with a common column name "ID". I would like to get the count of rows from all the four tables which has the same ID.
    Ex
    select count(a.id) from table1 a,table2 b,table3 c,table4 d where a.id=b.id=c.id=d.id=5;
    please suggest me some solution

    may be thsi?
    select count(a.id) from table1 a,table2 b,table3 c,table4 d
    where a.id=b.id and a.id=c.id and a.id=d.id and a.id=5;

  • Count of rows from different Columns

    SELECT (SELECT COUNT (empno) empno
              FROM emp) empno, (SELECT COUNT (mgr) mgr
                                  FROM emp) mgr, (SELECT COUNT (sal) sal
                                                    FROM emp
                                                   WHERE sal > 2000) sal
      FROM DUAL;Hi friends
    Please let me know any better solutions for this query..??

    user10594152 wrote:
    Please let me know any better solutions for this query..??Why not just..
    SQL> select * from emp;
         EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO
          7369 SMITH      CLERK           7902 17-DEC-80        800                    20
          7499 ALLEN      SALESMAN        7698 20-FEB-81       1600        300         30
          7521 WARD       SALESMAN        7698 22-FEB-81       1250        500         30
          7566 JONES      MANAGER         7839 02-APR-81       2975                    20
          7654 MARTIN     SALESMAN        7698 28-SEP-81       1250       1400         30
          7698 BLAKE      MANAGER         7839 01-MAY-81       2850                    30
          7782 CLARK      MANAGER         7839 09-JUN-81       2450                    10
          7788 SCOTT      ANALYST         7566 19-APR-87       3000                    20
          7839 KING       PRESIDENT            17-NOV-81       5000                    10
          7844 TURNER     SALESMAN        7698 08-SEP-81       1500          0         30
          7876 ADAMS      CLERK           7788 23-MAY-87       1100                    20
          7900 JAMES      CLERK           7698 03-DEC-81        950                    30
          7902 FORD       ANALYST         7566 03-DEC-81       3000                    20
          7934 MILLER     CLERK           7782 23-JAN-82       1300                    10
    14 rows selected.
    SQL> ed
    Wrote file afiedt.buf
      1  select count(empno) as emps
      2       , count(mgr) as mgrs
      3       , sum(case when sal > 2000 then 1 else 0 end) as sals
      4* from emp
    SQL> /
          EMPS       MGRS       SALS
            14         13          6
    SQL>

  • Weblogs: Cycle Count Inventory Date: From IM inventory date to WM inventory

    Dear All,
    I have updated new weblog on the common problem for physical inventory.
    When any organization plans to go for implementing the warehouse management; it has major concern about the physical inventory process, particularly last physical inventory date.
    More details are available on this weblogs:
    /people/community.user/blog/2007/10/04/cycle-count-inventory-date-from-im-inventory-date-to-wm-inventory-date
    <b>Your feedback/comments are most welcome, <u>Please write on the weblog page, not in this thread.</u></b>
    Regards
    Arif Mansuri

    Dear All,
    Here is my previous weblog, Your comments will work as tonic for me ), so leave your comment on both of these blogs.
    /people/community.user/blog/2007/05/04/physical-inventory-in-material-management
    Enjoy SAP..
    Regads
    Arif Mansuri

  • Count the number of records between two key values (BTREE)

    How can I count the number of keys between two values?
    I'm using python driver, and BTREE access method.
    ====>
    ideally what I want is to average a whole time-series data set (the intervals can change) to a given number of points. The keys are the time stamps and the values are the data that needs to be averaged. I need to count the number of records between two time stamps so that I can divide that number by the number of points i need, and average the data. What is the best way to do this?  Or should I just keep the intervals for the time stamp constant and use RECNO access method?
    Thank you
    (first post btw.. and why aren't there many people in stackoverflow who answer Berkeley DB questions?)

    BDB is an embedded db and it does not have any internal counters or statistics that you could grap to use for this.    You will need to do it manually.
    You can create a cursor, grap the records you want, each time you get the next record you bump a counter.
    If you are using RECNO, you can use a cursor to get the record number of the record (DB_GET_RECNO), and if all you data is in
    sequentail records with no missing records you can figure out the total count by take last rec # - initial rec # + 1 to get a total count.
    If you switch over to the SQL API, you can issue a SQL query to give you a count.  Select count(*) Where .......
    Since you have to grab the data anyway, then best may be to count records as you go along.
    thanks
    mike

  • 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

  • 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

    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

Maybe you are looking for

  • Disabled JMenuItem doesn show animated gif

    Hi there I would like to have a popup menu with actions that are enabled after they have finished with some background task taking some time. Basically this works fine for the enabling action on a shown popup. However, adding an animated gif as the i

  • How do I share my music with another user account on my MAC?

    I wish to share some of my music with another user on my MAC.  I created a playlist of the music I wish to share.  I enabled home sharing and selected share selected playlists.  I went to the users account and could not find the shared playlist.  Wit

  • IPhoto crashed during sync, photos lost .. can I recover?

    So I plugged my iPhone in, iTunes opens & I open iPhoto. Whilst iPhoto syncs I choose to delete photos once it's finished. Stupidly started doing something else at the same time and then both iTunes & iPhoto crash. I end up having to restart. Look at

  • Create table interval partition on a column timestamp with local time zone

    Hi Does anyone have an example for 11g on how to create a table with interval partitioning on a column defined as timestamp with local time zone. I know it's possible. the following does not work. CREATE TABLE KOMODO_EXPIRED_RESULTS TEST_EVENT_KEY NU

  • Flashvars, loaderinfo for mp3 player with xml

    ok, I am using flash cs5, am pretty new to as3, and I've been trying for 3 days to figure this out, as of yet have not been able to. I have built a music community website, obviously members can sign up for an account, and upload mp3 files to their a