Buffered counting and 6602

Hello,
I am trying to run the vi 'Single Buffered Event Counting' using a
PCI6602 board. I have the vi set to use the internal timebase. It
seems to run , however it gets stuck in the While Loop. I don't
understand how the counter gets to be 'unarmed'. Perhaps there is
something I am missing. I also want to be able to write the data to a
file for later viewing. Has anyone written a vi to do this?
Thanks in advance,
Kristie Elam

Hi Jon,
I am trying to do some buffered counting and only read the data if a large number is available.
I attach a Labview version of what I am trying to do.
My program does not do anything means that the terminal count is never reached. If I remove this condition, I can actually read some data.
Thanks.
Attachments:
SingleTimeStamping_v8.vi ‏197 KB

Similar Messages

  • Synchroniz​e hardware timed buffered counter acquisitio​n with buffered analog input acquisitio​n

    LV7.1
    DAQmx
    PCI-6036E
    SC-2345
    Windows 2000
    Greetings.
    I am simply trying to synchronize AI readings with readings from one Counter.
    I am trying to perform buffered analog input synchronized with buffered counter acquisition.
    I'd like the AI acquistion to trigger the Counter acquistion.
    I'm currently setting the Sample Clock Source for the CI Cnt Edges Task to "Dev1/ai/SampleClock" but when I try and set the source for the "DAQmx Trigger" I can't seem to select one that works. I assumed that the source should be the "Dev1/ai/StartTrigger" but that produces and error as does selecting any of the PFI's.
    I'm new to DAQmx and didn't have any luck with the examples or what's been previously posted.
    Thanks for your help.
    Attachments:
    Initialization.jpg ‏84 KB

    Gentlemen-
    All of your initial help was great. I had some noise on my counter lines so switched from an E-Series card to a PCI-6259 M-series card in order to use the counter digital filters.
    Now I can't get a corellated buffered counter and buffered analog input acquistion to work. This same code worked fine on an E-series card but it doesn't on the M-series.
    I verified that the source and gate of the counter are working properly using the test panel and a external function generator.
    But when I run the attached code I get no data out of the "Counter 1D U32 NSamples", only an error saying that the timeout of the function was reached and no count data became available. Am I missing the specification of a another clock or something?
    The counters also work fine using the M-series example code "Count Digital Events (M-Series DAQmx) but this is not a buffered acquisition.
    Any help would be greatly appreciated.
    Steve
    Attachments:
    Sample_Code.jpg ‏136 KB

  • Buffered Data And Counter Reads

    Someone help me please....I need to do some fast digital data
    acquisition with handshaking, which I think I can figure out. If anyone
    has any hints on buffered data like that, please let me know. Also, I
    need to read the status of three counters every time that handshaking
    pulse comes in. I am not sure how to store the counter data in a buffer
    (ie, hardware controlled)
    I have to do it hardware controlled, because the DAQ rates have to
    be fast....right around 1000 Hz or higher. Can someone offer any guidance
    into how to do this? I believe I understand how to configure buffers for
    the regular data recording and set up that handshaking, but I'm not sure
    how to set up the counters so they write their values to a buffer (all
    hardware controlled) when the handshaking pulse comes in.
    If there are any books out there or anything, if someone could
    tell me, I would be very appreciative. I always get the feelign grad
    students are trying to do things that the hardware wasnt designed for. LOL
    Thank you.
    JP

    >Someone help me please....I need to do some fast digital data
    >acquisition with handshaking, which I think I can figure out. If anyone
    >has any hints on buffered data like that, please let me know. Also, I
    >need to read the status of three counters every time that handshaking
    >pulse comes in. I am not sure how to store the counter data in a buffer
    >(ie, hardware controlled)
    > I have to do it hardware controlled, because the DAQ rates have to
    >be fast....right around 1000 Hz or higher. Can someone offer any guidance
    >into how to do this? I believe I understand how to configure buffers for
    >the regular data recording and set up that handshaking, but I'm not sure
    >how to set up the counters so they write their values to a buffer (all
    >hardware controlled) when the hands
    haking pulse comes in.
    > If there are any books out there or anything, if someone could
    >tell me, I would be very appreciative. I always get the feelign grad
    >students are trying to do things that the hardware wasnt designed for. LOL
    >
    > Thank you.
    >
    > JP
    >
    >
    >
    >
    I am working on a project of high speed generation, and what I did was first to
    look at the spec sheets of the 6533 (32HS) at www.NatInst.com That is a board
    that buffers input and stores it till need be. The 6602 board has counters on
    it that can be scanned when events happen. A small bit of math resulting from
    those numbers can tell you a lot about when such triggering events happened.
    Hope this helps,
    Dave

  • MIO 6601 Counter, Perform Buffered Read and Simple Read

    I have an application written in C++ where I would like to use the 6601 as the time base for all of the boards, so I would like to be able to query the current value of the counter. I also have a external signal that I want time tagged in the buffer. I have used example programs for the Simple Read and the Buffered read and they both work successfully individually.
    If I try and combine them by setting up the counter with the following statement:
    iStatus = GPCTR_Set_Application(iDevice, ND_COUNTER_3, ND_BUFFERED_EVENT_CNT);
    and try to read the current value of the counter with:
    iStatus = GPCTR_Watch (iDevice, ND_COUNTER_3, ND_COUNT, puiCurrentTime);
    I always return a 0 for puiCurrentTime.
    Can
    I do both with a single counter? If not can I synchronize two counters one setup for the buffered read the other for the simple read.
    Thanks

    The second NIDAQ function call (GPCTR_Watch) will not work with Buffered Acquisition, because it is designed for simple read only. That might be the reason why puiCurrentTime always returns a zero.
    Regarding the second issue, you can do both tasks with a single counter, by configuring it as buffered first, and completing the operation, and then configuring it as single, and completing also the operation. Nevertheless, there is no way to configure it as buffered and work with it as single reader, or viceversa. You must use two for performing an operation such as that. Thus, if you want to synchronize both of them, I would suggest you to read the following document which talks about it.
    Well, I hope all of this info is helpful for you.
    Aguila
    Attachments:
    Multicounter_Synchronization_App_Note.doc ‏55 KB

  • Buffered Counter Start/Stop

    I am currently running an application requiring buffered counting
    of high-speed events. I have a PC-6602, and I will be running three
    groups of two counters each--one counter will run at 20 MHz for high
    resolution timing, and the second counter in each group will count
    rollovers of the fast counter to keep real time data. For neatness, I
    would like to have three separate gruops of counters, but will they start
    at the same time? I need all the counters to start simultaneously, and if
    they are in different groups with different task ID's, how can I assure
    they will all start at the same time?
    Thanks,
    Josh

    Thanks for the response Filipe, I'll let you know how it goes. I only went into the header file because example code provided by NI ... paste ...
    iStatus = GPCTR_Read_Buffer(iDevice, ulGpctrNum, ND_READ_MARK, ulReadOffset, ulNumPtsToRead, ulTimeOut, &ulNumPtsRead, pulReadBuf);
    showed use of 8 parameters - in agreement with the header file and in disagreement with the on-line help file function documentation.
    Tom

  • How do I use the buffered counting mode at a fixed frequency?

    Hi-
       I'm using a PCI-6259 M-series board with the Nidaq MX
    drivers in Labview 7.  I am trying to use one counter to do
    buffered edge counting (eg. count how many pulses appear on one input
    in 400 successive time bins of 10 uS each following a digital start
    pulse).  That is, my inputs are:
         Start Pulse (from experiment)
         Count Pulse (from a photomultiplier tube in the experiment)
    And I want to know:
        # of pulses from 0 to 10 uS after the Start Pulse
        # of pulses from 11 to 20 uS after the Start
    Pulse  (or, equally good, # of pulses from 0 to 20 uS....I can
    subtract later)
        # of pulses from 3991 to 4000 uS after the Start Pulse (or, # of pulses from 0 to 4000 uS...same thing)
       The Count Digital Events-Buffered-Finite-Ext Clk.vi sample
    appears to do half of this.  I can set this up CTR0 with the Count
    pulse (and possibly add the start pulse as an Arm Start....I can't use
    a Start Trigger, right?).  However, I need to generate a Sample
    Clock Source at 100 kHz (to trigger the card to buffer the counter
    value and start counting in the next bin).  So, I tried to set up
    CTR1 along the lines of Gen Dig Pulse Train-Finite-Dig Start.vi for
    generating a finite pulse train starting on a digital trigger, and
    connecting the output from CTR1 to the Sample Clock Source on
    CTR0.  However, I get an error -50103 saying the specified
    resource is reserved if I do both at the same time.  But, I can't
    see any resource conflicts...the pulse generation on CTR1 works fine
    alone, as well as the buffered counting on CTR0, and all the PFI pins
    are different.  Is there some reason I can't use both counters at
    the same time?
    I think I can use the FREQOUT pin on the card to generate a Sample
    Clock Source at 100 kHz, since I think this is independent of CTR0
    & CTR1.  However, I can't trigger the FREQOUT to always start
    when I get a Start Pulse (as I can if I trigger a Digital Pulse Train
    to start on a digital trigger...or can I?)...so my bins will move
    randomly by up to 10 uS.
       This is an unrelated topic, but is there a discussion of
    the relationship between the terminology in the manuals describing the
    cards (SOURCE, GATE, OUTPUT terminals) and the terminology in NidaqMX
    (Source Clock/SrcClk.Source, CI.CountEdges.Term, CO.Pulse.Term)? 
    Eg. is CTR0.GATE always the same thing as SrcClk.Source, or does it
    depend on the mode of operation?  If the M-series hardware manual
    says to connect something to the SOURCE input, how do I assign an
    alternate PFI pin to that SOURCE input in Labview?  Does it depend
    on the counter type, or is it always the same?

    Dave,
    Hi, you brought up several questions / issues -- let me see if I can help with some of them:
       I can set this up CTR0 with the Count pulse (and possibly add the start pulse as an Arm Start....I can't use a Start Trigger, right?).
    Yes, you could set up this way.  Also, as far as I know you're also correct that you need to configure for an "Arm Start" trigger using the DAQmx Trigger property node.  The "Arm Start" trigger is used for counter input (measurement) apps while the regular "Start Trigger" can be used for counter output (pulse generation) tasks.  I don't think I've experimented with recent versions of DAQmx though so it may have changed in 7.4 or 7.5
    ...I tried to set up CTR1 along the lines of Gen Dig Pulse Train-Finite-Dig Start.vi for generating a finite pulse train starting on a digital trigger, and connecting the output from CTR1 to the Sample Clock Source on CTR0.  However, I get an error -50103 saying the specified resource is reserved if I do both at the same time
    I highlighted the problem -- the FINITE pulse train.  DAQmx uses CTR0 as a "helper" when you generate a finite pulse train on CTR1.  It would generate a single pulse whose width corresponds to the exact amount of time needed for CTR1 to generate its specified # of pulses.
    For your specific app, I think you could generate a triggered continuous pulse train with CTR1 -- this wouldn't need to use CTR0 as a helper.  The Start Pulse would arm CTR0 at the same instant that CTR1 is started.   If you set up CTR0 to acquire on the trailing edge of CTR1's pulses, then you'll get the time bins you want.
    A final slight mod would be to setup CTR0 for measuring buffered periods (set units == "Ticks") instead of counting edges.  In that mode, you wouldn't have to do the subtraction at the end.
       This is an unrelated topic, but is there a discussion of the relationship between the terminology in the manuals describing the cards (SOURCE, GATE, OUTPUT terminals) and the terminology in NidaqMX (Source Clock/SrcClk.Source, CI.CountEdges.Term, CO.Pulse.Term)?  Eg. is CTR0.GATE always the same thing as SrcClk.Source, or does it depend on the mode of operation? 
    There's an NI app note and some discussion forum hits if you search the site for "daqmx terminology."
    If the M-series hardware manual says to connect something to the SOURCE input, how do I assign an alternate PFI pin to that SOURCE input in Labview?  Does it depend on the counter type, or is it always the same?
    Usually, that choice would be available under the DAQmx Channel property node.   There'll be some place to define where the input signal is coming from, generally with "Term" or "Terminal" as part of its name.   Sorry I can't be more specific as I'm not at my LV computer now.
    Happy counting!
    -Kevin P.

  • Retriggerable buffered counting edge task

    Dear all,
    I have been working on "Retriggerable buffered counting edge task" on a single counter input channel, let me describe what I want to achieve:
    Create a CI to count finite rising edges with external sample clock (eg. Dev1/di/SampleClock) at certain sampling rate, and set CI.edge.Term at one PFI which is hardwired to another digital input channel. Furthermore, I'd like to set "retriggerable start trigger" to this CI by another PFI line.
    It turns out that I can only set "arm start trigger" on this counter input channel, instead of "start trigger" since the error of 200452: attribute not supported in task context showed up at configuring digital edge start trigger. It seems that I can only set "retriggerable start trigger" on counter output task, and use two counters to achieve above, but I was wondering if there is a way to accomplish by single counter. Any suggestion is highly appreciated.
    Solved!
    Go to Solution.

    Dear John,
    I just tried and run into another issue with overflow. The idea is to synchronize this counter with finite DI and to read both buffers out when DI's buffer is filled. Since I am running CI in contineous mode, it seems to be reasonable to run into overflow on buffered CI after a couple of triggers; Error: -200279 when trying to read CI buffer. Is there a way to skip/ignore overflow but still read buffer with size that I specified at attribute of SamplePerChannel? or any better idea of design to achieve what I am trying to do? I was wondering how effective it would be by increasing buffer size to avoid overflow since no known pattern on the trigger signal.
    Really appreciate your help. Thank you.

  • Benchmarks for Buffered Counter Input with X-Series Devices

    Hi,
    Does anyone know the maximum transfer rate (using dma) for the x-series cards? 
    I'm looking for data simillar to the one in this link:
    http://digital.ni.com/public.nsf/allkb/72A7E41EE5A8756A862571DA0076F1D7?OpenDocument
    More specifically I want to know the transfer rate for the PCIe 6343.
    Thank you,
    Eyal
    Solved!
    Go to Solution.

    I benchmarked 8MS/s on a single channel on a USB-6353 (should have similar performance to the USB-6356/66) with a buffered counter input task. This was only a 10 minute test on my Dell E6400 laptop ( Windows 7 32 bit, Dual core P8600, 4GB memory) so a sustained 24/7 rate is likely less. Also, I wasn't doing much with the data, just displaying it in an array. This is pretty much topping out USB streaming on this system (32MB/s) so I wouldn't expect to get higher. I wasn't running much else in the back ground (Explorer, Powerpoint, Lotus Notes) and CPU was at ~20%.
    Hope this helps,   
    Andrew S
    Getting Started with NI-DAQmx
    Measurement Fundamentals

  • Buffered counter output in C

    Hi everyone,
    I am looking for a possibility to generate a finite buffered counter output with varying pulse widths, using the X-Series. I am working in C / Python.
    I want to output two pulses triggered to an external signal. The first pulse should be short, the second pulse long. 
    The following code outputs only two identical pulses. How can I modify it to output two different pulses?
    CreateCOPulseChanTicks(channel,"","100MhzTimebase",DAQmx_Val_Low,0,300,300)
    CfgImplicitTiming(DAQmx_Val_FiniteSamps,2) #output two pulses
    CfgDigEdgeStartTrig(src,DAQmx_Val_Falling) #external signal
    SetStartTrigRetriggerable(True) #retrigger
    Best Regards,
    Stefan

    It's good you found a workaround but the behavior doesn't seem right to me...
    The default behavior in DAQmx (the C / LabVIEW / .NET APIs) is to regenerate data from the buffer.  Perhaps the python wrapper you are using is disallowing regeneration somewhere?  I tried this with regeneration disabled and it gives the same behavior you reported (though with regeneration enabled it does not).
    You can use DAQmxGetWriteRegenMode to verify this theory and DAQmxSetWriteRegenMode to enable regeneration in case it is disabled.
    Best Regards,
    John Passiak

  • Need quick help, please!!! How do I scan the counter and analog channel in parallel, synchronized?

    Hi,
    I'm using LabView6.1 and a PCI6014 DAQ card.
    I have to scan simultaneously an analog channel and the counter on the card. My project requires me to measure in parallel a force (a voltage on an analog channel) in correspondence to a distance (measured with a counter) and I have to display a force-distance graph.
    So, can someone please tell me how can I program the counter and an analog channel to take 1000 measurements in parallel, and then, by reading the buffers to have two sets of corresponding measurements?
    I've tried some things and I've got only an error message, that says that there is no free DMA channel available (the error comes from configuring
    the analog channel). I attached one of these programs that gives this error, maybe somebody can tell me what I do wrong.
    If somebody could send me an example (in LabView6, I have no 7 :-( ), I would be grateful.
    Thank you,
    pixooxiq
    Attachments:
    Scan_Test_4.vi ‏177 KB

    Hi pixooxiq,
    unfortunately, your Card has only one DMA-Channel.
    If you want to use two Channels simutaneously, you have to tell one of them to use an Interrupt instead.
    This option can be set with the "Set DAQ Device Information.VI"
    Just see the Bitmap, I've attached.
    Perhaps, you now get Performance-problems, cause the IRQ does not directly write the Data but involves the CPU. In this case the only possibillity is to use an other card with more than 1 DMA-Channel...
    Regards
    Peter Weber
    NI Germany
    Attachments:
    Interrupt2.bmp ‏159 KB

  • How do I use the counter and digital signals of the 6071E while it is connected to SCXI modules?

    I am contemplating using a PCI 6071E with SCXI. We have the boards (6071E), we would need the cable (I suppose SH1006868) and the SCXI system. I would like to know how would you access the counter and digital line capabilities of the board. I will be using a SCXI-1314 with a SCXI-1520 Module for strain measurements but will need to use the counter and digital lines of the board as well. Can this be done? If so, how and/or what else do I need?

    I think this KnowledgeBase will answer the question for you.
    Accessing DAQ Board Counter Pins with an SCXI System
    Otis
    Training and Certification
    Product Support Engineer
    National Instruments

  • My iTunes doesn't keep track of my listening history anymore. It doesn't update play counts and default "Recently Played" playlist.

    My iTunes doesn't keep track of my listening history anymore. It doesn't update play counts and default "Recently Played" playlist. But it still tracking plays from my iPhone and syncing them.
    I've tried to repair it with setup file. Nothing's changed.
    Can you help me with that?
    NOTE: Now I tried disabling the crossfade feature and it worked, started to count again. But I like crossfade, I don't want to keep it off.

    I think I got this figured out. The playcount does update, but not how the previous iPod models update their playcount. Instead of immediately updating the playcount right after you finish the song like the older iPod models, iPod Touch keeps the updates in memory. The next time you connect to iTunes it'll sync those playcounts in memory to the actual songs itself, effectively updating the playcount of the songs only after connecting to iTunes. I have set my syncing manually. That's why after connecting to iTunes, my playcounts are updated. BUT it doesn't solve the mystery of my Smart Playlist. Even though in iTunes, the correct songs are listed, in the iPod Touch, it shows the old playlist.
    Don't you just hate that? It was working fine before on non-iPod touch models. Now we have to live with this new bug. I just hope when they release software 2.0 it fixes these bugs and that they *give it for free!* People shouldn't be charged on something they should have gotten as a support!

  • Can I get my music collection (play counts and playlists inc.) from my iPad to my PC?

    I had a problem with iTunes where I couldn't add songs to the library because I didn't have sufficient permissions to edit my iTunes library (even though I did). After a few days of tweaking administrator permissions and the like, I got really annoyed and tried re-installing iTunes to see if it would make it go away. Whilst the iTunes64Setup.exe file was downloading, I was fiddling with the .itl and .xml files in my iTunes folder and when I re-installed iTunes I had lost all my play counts and playlists. When iTunes opened, I assumed it must have overwritten the two files because when I looked at them in Windows Explorer they were both a lot smaller in size.
    Obviously, I didn't sync my iPad or iPhone after this had happened, so I still have the playlists and play counts stored on them. Is there any way I can:
    a) Recover a previous version of the .xml and .itl files on my laptop and use them to restore my plays?
    or
    b) Use iTunes Match to restore them onto my laptop?
    I'm not sure about b). When you subscribe to Match, does it analyze your current library and then save it to the Cloud so you can redownload it?
    I'm going to buy the new iPhone when it is released in the next couple of months so I'm willing to jailbreak my iPhone 4 if need be.
    Thanks for any help.

    Empty/corrupt library after upgrade/crash
    Hopefully it's not been too long since you last upgraded iTunes, in fact if you get an empty/incomplete library immediately after upgrading then with the following steps you shouldn't lose a thing or need to do any further housekeeping. In the Previous iTunes Libraries folder should be a number of dated iTunes Library files. Take the most recent of these and copy it into the iTunes folder. Rename iTunes Library.itl as iTunes Library (Corrupt).itl and then rename the restored file as iTunes Library.itl. Start iTunes. Should all be good, bar any recent additions to or deletions from your library.
    See iTunes Folder Watch for a tool to catch up with any changes since the backup file was created.
    When you get it all working make a backup!
    Or see Recover your iTunes library from your iPod or iOS device.
    tt2

  • How to transfer library with play count and top 25 playlist to another itunes library?

    Hi,
    I would like to transfer all my music, with the play count and top 25 most played and other playlists to another iTunes library on a Mac. How would I go about doing this?

    What exactly are you trying to do?  You already have another library on the computer and wish to add items from another library?  This is not easily done and meeting all the requirements you have posted.  While it is possible to transfer play count I think it is one of the things that requires Applescripting knowledge.
    If you are just wanting to move a library from one place to another that is possible, though still tricky because you start encountering user permissions.

  • "select count(*)" and "select single *" returns different result

    Good day!
    product version SAP ECC 6.0
    oracle10
    data transfers from external oracle db into customer tables using direct oracle db link
    sometimes I get case with different results from 2 statements
    *mytable has 10 rows
    *1st statement
    data: cnt type I value 0.
    select count( * ) into cnt from mytable WHERE myfield_0 = 123 and myfield_1 = '123'.
    *cnt returns 10 - correct
    *2nd statement
    select single * from  mytable WHERE myfield_0 = 123 and myfield_1 = '123'.
    *sy-dbcnt returns 0
    *sy-subrc returns 4 - incorrect, 10 rows are "invisible"
    but
    1. se16 shows correct row number
    2. I update just one row from "invisible" rows using se16 and 2nd statement returns correct result after that
    can not understand why
    thank you in advance.

    Thank you, Vishal
    but,
    general problem is that
    1. both statements have the same WHERE conditions
    2. 1st return resultset with data (sy-dbcnt=10), 2nd return empty dataset, but must return 1 in sy-dbcnt
    Yes, different meaning, you are right, but must 2nd must return 1, because of "select single *" construction, not 0.
    Dataset to process is the same, WHERE conditions are equal...
    I think the problem is that how ABAP interperets select count(*) and "select single *".
    Maybe "select count (*)" scans only PK from index page(s)? and "select single *" scans data pages? and something is wrong with that?
    I'm new in SAP and didn't find any SAP tool to trace dump of data and indexes pages with Native SQL.
    se16 shows all records.
    And why after simple manual update of just one record using se16 "select single *" returns 1?
    I've just marked one row to update, didn't change any data, then pressed "save".

Maybe you are looking for

  • How can I read different files in the file adapter

    Hi, I have a scenario like file(content conversion and FTP) to Proxy and need to read 2 files which have different structures. The file structures is as follows. FileA.txt EMPID, Designtion,code,DOB,dept,deptID and 13 fields etc.. FileB.txt officerco

  • Help us improve the look and feel of our community

    The BTCare Community Team needs your help! We want to improve the layout of the forum and would like to get your thoughts and feedback. Please complete this short questionnaire (it's very short, promise) to share your ideas on how we can improve the

  • How to get video to computer

    how do I copy video taken with iPhone to my iMac computer?

  • HT4927 Is it possible to retrieve  photos from the clouds

    It appears that my pictures are lost forever I've tried everything please help,

  • Block

    Hi    Is it possibile to block that user should not be able to add freight at Document Level. Screen 'Freight Charges' should not appear in Sales Order / Delivery. Thanks