DAQmx RTSI Counter

Hello All,
I am attempting to generate a 40kHz counter and export the signal to a RTSI channel in order to synchronize two PCI-NIDAQmx cards(6025 & 6259) for analog output signal generation.   I have made my best effort to create the VI, but am receiving the following error:
"Labview: Internal Error.  Wrong memory zone accessed."
Any assistance would be greatly appreciated, and I'm open to any suggestions or alternate methods!
Sincerely,
Zach
Attachments:
RTSI_Clock.vi ‏29 KB

Hi Zach,
I took a look at your code, and I believe I have the answer as to why you are
receiving this error. It appears that you created a constant for your Simple
Error Handler to specify the "type of dialog", but you accidentally
wired it into the top-most input terminal, which is the "error code"
input. Thus, since you selected "OK message + warnings" on that enum,
it is passing the value of 3 into the error code, and thus returning the error
you are seeing every time you run the VI.
In addition, based on your explanation of what you are trying to accomplish
overall, I am not sure that your code will do quite what you are expecting. You
are using the Export Signal VI to route the Counter Output Event to the RTSI_0
line, but this is not the same as routing the output of the counter. The
Counter Output Event is a signal that will pulse when the counter reaches its
terminal count during an input task. In your case, you would actually want to
connect the counter output line, specified as "Dev1/Ctr0Out" to your
RTSI line using the Connect Terminals VI. You will also then have to disconnect
these terminals at the end of your program before clearing the task. I went
ahead and made the above changes to your VI and have attached it below. Please
also note that DAQmx allows you to route signals over the RTSI bus without
having to manually connect the terminals to the RTSI line. Therefore, you could specify the source of your sample clock on one device to be the counter output of the other device, and as long as you have properly configured the boards in Measurement & Automation Explorer (MAX) to be used with the RTSI cable, it will automatically route the proper signal over the RTSI bus. Hope this helps with your application,
Daniel S.
National Instruments
Attachments:
RTSI_Clock3.vi ‏29 KB

Similar Messages

  • Error -200429 DAQmx read (counter u32 1ch 1samp).vi -append- Edge count in for loop

    I am receiving error -200429 DAQmx read (counter u32 1ch 1 samp).vi <append>. This is occuring on the second loop of a for loop.
    I have a sequence inside the for loop that is using four DAQmx assistant vi's for edge count at various times in the sequence. All four of these count fine the first time through but at the beginning of the second loop the first edge count receives this error and does not count.
    Any ideas?

    The code you have supplied is similar to the converted subvi but this code will give an empty task error on the DAQmx Create Channel vi.
    Notice on the Daqmx create task vi that there is nothing wired to the "Task to copy" or the "Global virtual channels" connectors - I believe this is why the task is empty when sent to the Daqmx create channel vi.
    The code we are currently using is a modification of a previous code used before a recent upgrade. It may be better in your/NI eyes to re-write this into a State machine but time constraints and resources do not allow that at this time - All other parts of the current program work except for the counter on the second iteration. Would rather not reinvent the wheel at this point. 
    If the task is being cleared was the issue then the other three should also not execute. The issue appears to be the "First Call"
    I have attached a zip file of the complete program as it is now written to give you a better idea of the whole picture.
    Attachments:
    Test Machine current code.zip ‏657 KB

  • Error -200685 DAQmx Write Counter Frequency

    I have to generate 4 finite pulse trains with Counter Output and a X-series board (NI PCIe-6321). I know that with X-series boards only one counter is used to generate finite pulse train. I use LabVIEW 2010 sp1 and DAQmx 9.3.5.
    One task for each counter is created.
    When only one task runs, everything is ok, but, when more than one task runs, i receive "error -200685: Pulse frequency specified is not supported for this device given the Counter Timebase Rate." from DAQmx Write Counter Frequency. Error reports invalid data&colon; 0,000000
    I have checked data supplied and no zero frequency is passed to the VI. In fact, counter frequencies lower than 100 are forced to be 100 through a previous VI.
    Thanks for the help
    Attachments:
    Error.PNG ‏42 KB
    Zero frequencies avoided.PNG ‏7 KB

    OriginalP ha scritto:
     I payed attention to write non null frequencies and this is why this error sounds so strange to me.
    My last words... i found that two null frequencies (1018 and 1019 array indexes) were passed to Counter Output (see attached images "Counter Output Front Panel Data.PNG" and "Counter Output Block Diagram Data.PNG").
    It's quite strange, because VIs generating pulse train frequency data don't output these two null frequencies (see attached image "Array Output Data.png").
    This pair of null frequencies is random, but definetively the error is not in Counter Output DAQmx Write VI.
    Attachments:
    Counter Output Front Panel Data.png ‏33 KB
    Counter Output Block Diagram Data.PNG ‏21 KB
    Array Output Data.png ‏21 KB

  • How to run two DAQmx Read (Counter in + Digital in) simultaneously?

    Hello to all, i have following issue:
    I want to acquire a digital (UART like) bus signal. For this purpose i use a DAQmx Card (PXI 6070e). I need precise time information about time lenght of 0 and 1, so i use a counter. The counter is adjust to CI Semi Period(continuous samples) -> on the edge change i'll get a new measured time value. It works perfectly, but i newer know what kind of state (0 or 1) actually belongs to current value. Of course they changing with each edge, but i need to know that exactly. So i should take a digital input which watching the current state. Unfortunately i can not synchronise two DAQmx-reads.
    Finaly i should get two values:
    time value(counter) and his state(digital in
    ) to work with them. How can i do this?
    I use LabView 7.0

    [SRQ 211371]
    This is not a trivial taks but here is one way to do what you explained with a PXI-6070E and some external circuitry:
    1. Use buffered semi period measurement to measure the width of your pulses.(Meas Buffered Semi-Period-Continuous.vi)
    2. Use a buffered continuous analog data acquisition with external scanclock (e. g. Cont Acq&Graph Voltage-Ext Clk.vi). Maybe you should use a triggered example to start the acquisition at a defined time.
    Now you could connect your signal to the ScanClock input (PFI7) of the 6070E but then you only would acquire only a sample at either the rising or the falling edge. As you need a sample at both edges you need some external circuitry that generates a short positive TTL pulse at each edge (rising and fa
    lling).
    Sorry that I can't provide a solution for this circuitry but I'm pretty sure something like this should be available as a low cost IC.
    You may want to allow your signal some settling time after the scanclock pulse has occurred. In this case simply acquire data on two AI channels. The first channel is only a dummy channel. Connect your signal to the second channel. The delay can be adjusted with the interchannel delay.
    If anybody knows a good solution for the external circuitry or if anybody has a better approach please post it here.
    Best regards,
    Jochen Klier
    NI-Germany

  • DAQmx gate counter output

    Hello,
       I am trying to convert an existing legacy application developed in LabVIEW 6 (Traditional DAQ) into LabVIEW 2012 (DAQmx). The operation requires generating one counter output that is gated by another counter output. I have attached a fully functional example using Traditional DAQ. In the example you can see the Carrier Frequency output (4550 Hz or 5525 Hz) is generated by Counter 1. The counter Gate Frequency is generated by Counter 0. Counter 1 output is now gated by Counter 0 output in which you end up with bursts of the Carrier Frequency at a rate set by the Gate Frequency (from 3 to 21.5 Hz). This works fine but I cannot replicate this in DAQmx. The DAQ board I am using is an NI DAQCard-6062E (in a PCMCIA Slot).
       Any sugestions are appreciated.
    Thank You,
    Mike Westgate
    Attachments:
    Traditional DAQ Counter Gate Output.zip ‏32 KB

    Hi Mike,
    I wasn't able to properly look at your code since I have not install the Traditional DAQmx (Legacy) driver yet.
    But I do have the following links that can help you in transition from Traditional DAQ to DAQmx:
    Answers to Frequently Asked Questions about NI-DAQmx and Traditional NI-DAQ (Legacy)
    Transition from Traditional NI-DAQ to NI-DAQmx in LabVIEW
    Ee Lim
    See that button on the left side of this post...
    If you feel my post is helpful, all you need is just (at most) 2 seconds to click that button, to show your appreciation. Thank you~~

  • DAQmx: 2 Counter Outputs in 1 Task?

    Is it possible to have two counter outputs with different timings in one task?
    One counter will be used to generate a PWM pulse train and the other one will be used to re-arm the trigger for analog data acquisition.
    Thanks for your help.

    Hi,
    Thank you for posting to the NI forums.  You should be able to output on two counters with separate timing sources.  I’ve done just this using an M Series DAQ device and the DAQ Assistant’s auto-generated LabVIEW code.  The screenshot to this VI is attached below.
    I hope this helps.  Please post back if you have further questions.
    Ed W.
    Applications Engineer
    National Instruments
    Message Edited by Ed W on 01-26-2007 01:50 PM
    Message Edited by Ed W on 01-26-2007 01:50 PM
    Message Edited by Ed W on 01-26-2007 01:51 PM
    Attachments:
    Two Counters.JPG ‏56 KB

  • How do I use daqmx to get encoder direction/count on M-series board?

    I have an incremental dual channel  encoder from Rotalink. I want to take angular postion and angular speed from this encoder. My NI DAQ card is PCI 6221 which belongs to M series. First, soft-timing was used to get anuglar postion and sampling rate is set at 1Hz. The vi program works well. However, it does not produce  good results when the sampling frequency is increased to 100Hz. So I turned to hardware-timing. The example, "Find example>> Hardware Input and Output>>DAQmx>>Counter Measurements>>Position>>Meas Angular Pos-buff ext Clk.vi" gets the readings. A function generator which can produce pulses at the frequency rang from 1Hz-1Mhz was wired to PFI9 in accordance with "
    You need to find your PFI pin numbers to know what to wire A,B and Z to on your m-series board, to do this go into max right click NI-DAQmx Tasks click Create New DAQmx Task >> Counter Input >>Position>>Linear, and setup the task for your measurement. It will tell you what the PFI lines are. You then need to look at the wiring diagram and connect it to the correct pins." as an external clock. The channel A and B were wired to PFI8 and PFI10 respectively. However, it still gives errors like 200284. Comments are grealy appreciated!

    Hi Zibin
    I have been trying to work out what is not working I need some more information
    What frequency is your function generator actually generating?
    What have you set your time out value to?
    What exact errors are you getting and when do you get the error?
    What would really be helpful is if you could send me your code because by the sound of it, it should just work the card is more then capable of doing what you want so chances are it is the code.
    Regards
    Tim M
    NI UK

  • What are the units of the DAQmx counter?

    Hello,
    I created this VI and several similar ones a few months ago, but, I have forgotten some of what I did back then.  I believe that this VI should measure period, using the counter on the DAQ chassis.  Can anyone tell me the units of the period measured?  I think it is seconds, but, I am trying to figure out how to figure that out!  The values of the period are generated by the DAQmx READ function in the WHILE loop.  What units is that function outputting to the array?  What are the units of the array elements, essentially?  See the attached VI.
    Also, how do you know?  I opened the DETAILED HELP for the DAQmx Read (Counter 1D DBL NSamp) shown in the VI but, I can't find anything on the units of the data coming out of the terminal labeled DATA with the orange wire, which is actually an array of periods, and we take the average of the most recent 15 or so period measurements.
    I had a suggestion months ago for an online NI manual containing a description of Buffered EdgeCounting measurements, but, when I went to find it, the link had been changed by NI, so, I can't find that manual, but, I think the answer is probably there, because I recall that manual being very useful when I did this before.
    Thanks for the guidance.
    Solved!
    Go to Solution.
    Attachments:
    continuously measure period buffered_singlechannel_forum Nov 13.vi ‏33 KB

    HI dav2010,
    When you create a Virtual Channel, you should specify the units the counter task will use.  There are several options which are listed in the help here:
    http://zone.ni.com/reference/en-XX/help/370469AA-0​1/lvdaqmx/mxcreatechannel/#DAQmxCreateChannel%28CI​...
    I am not on a computer with LabVIEW right now, but I believe the default should be ticks, which is the number of ticks of your device's timebase.  You can find that information in your hardware specifications.
    Regards,
    Chris E.
    Applications Engineer
    National Instruments
    http://www.ni.com/support

  • How do i develop code in LabVIEW 7.1 for configuring and performing gated edge counting using NI-DAQmx

    Hi,
    My application requires DAQ counter channel to count the rising edge of the input signal connected to the source pin of the counter. This counting has to take place only when there is a high pulse in gate pin of the same counter.This can be developed easily using traditional daq vis.
    Please let me know how to develop code using DAQ mx.
    Thanks,
    Sudha

    There is an example that demontrates how to do this in DAQmx called "Count Digital Events-Pause Trig.vi".
    gus....

  • DAQmx counter rollback

    Hi
    We developped a VCD in order to measure the speed of a motor. To measure this speed, we use some counter.
    We use the Daqmx Create Channel function (CI Position angular Encoder) , and then we read the angular position using the DAqmx Read (counter dbl 1channel 1 sample).  Then we calculate the speed with the angular position difference and the time difference between two calls.
    All this things works, but after a while (depending on the speed of the motor) , we have a rollback of the counter and then a false speed measurement. It is normal to have a rollback, but why isn't this rollback managed by NI when we use the angular position. The driver returns me a angle position, it should return me the good position even if i have a rollback of the counter ...
    We found a solution in order to get rid of thi sproblem : We don't read the angle position but the value of the counter, and then we manage the rollback and we calculate the angle position from the value of the counter. But as i said, for me the driver is bugged ... 

    Try the meathod in the attached VI.
    It looks at the error cluster and clears the timeout error if it's there. The output will be 0 when it sees this error. Make sure and specify a short timeout so your program will not hang waiting for the timeout.
    Ed
    Ed Dickens - Certified LabVIEW Architect - DISTek Integration, Inc. - NI Certified Alliance Partner
    Using the Abort button to stop your VI is like using a tree to stop your car. It works, but there may be consequences.
    Attachments:
    Clear Counter Timeout.vi ‏35 KB

  • How do I use a counter to measure frequency and multiple analog signals in the same VI?

    I have a PCI-6071E, an SC-2345 with multiple modules, and a PXI-8184 (with a PXI-1002 Chassis).
    My goal is to monitor pressures, flows, temperatures, and speed in one VI.
    I am using Measurement and Automation Explorer version 3.1.1.3004 to manage my channels.
    My speed is a PWM signal which I recently rewired through the counter 0 of my board.
    I was hoping to configure this to read frequency directly in measurment
    and automation, have this scale the value to RPM, and then feed it
    directly in to my labView program.
    In labView, it will not except this signal though.
    I get error -200300 from the DAQmx Start Task.vi
    Possible reasons(s):
    Invalid timing type for this channel.
    Property: SampTimingType
    You Have Requested: Sample Clock
    You Can Select: Implicit, On Demand
    After doing some research, it seems that the counter wants "Implicit"
    selected for the DAQmx Start Task.vi, but then I cannot use my other
    channels. Also, counter is included in the "Sample Clock" option
    description, so I do not understand why it is not working.
    Does anyone know how to work around this problem or a way to configure the counter so that it will work in this way?
    All my other channels are Analog.
    Thank you.

    I am working on getting just the counter working by using
    the program posted previously, and I am running into issues. Periodically I get
    the error:
    Error -200141
    occurred at DAQmx Read (Counter DBL 1Chan 1Samp).vi
    Possible reason(s):
    Data was overwritten
    before it could be read by the system.
    If Data Transfer
    Mechanism is Interrupts, try using DMA. Otherwise, divide the input signal
    before taking the measurement.
    It seems to work better if I use cascaded counters, but I need timer 0 for
    analog channels when I run this code along with the program for the other
    measurements.
    I have tried averaging, and selecting different values for the millisecond
    timer, and these did not seem to have an effect.
    I tried different DAQms configurations and "Counter DBL 1Samp" seemed
    to work the best.
    The program will work for a while and then it will give me the above error
    message.
    If I use counter 0 as a cascaded counter input, the program runs fine. If I run
    this with other analog channels, it errors out because the analog channels use
    counter 0.
    If I use counter 1 as a cascaded counter input, it seems to work better than a
    single channel, but it will still error out with the above error.
    If I use only counter 1, I get the error above even faster.
    Also, none of the
    configurations give measurements outside the While Loop.
    The only place I can add a speed dial for the front panel is within the While
    Loop.
    Is there someway to get the signal to continuously send out of the while loop?
    I thought if I could get the signal out of the while loop, I could condition it
    anyway I wanted without the program erroring out.
    Any suggestions would be much appreciated.
    Thank you.
    Attachments:
    Counter_error.jpg ‏45 KB

  • How to count frequency of two signal at the same time ?

    Hello every one
    please help me with this one i am really stuck.
    The situation   : I have two square wave signal, and i want to measure the frequency of both of themat the same time.
    the problem : Error -50103 occurred at DAQmx Read (Counter DBL 1Chan 1Samp).vi:3
    Please see the attachement.
    i also have 3 analog inputs to be measured.
    but i dont have any problem with the analog inputs,,,multiple analog  inputs can easily be measured,,,,,but the prob lem is in the digitl (square wave ) signals. 
    Attachments:
    i want to use two counter input.GIF ‏54 KB
    two counter tasks1.vi ‏250 KB

    NI has an excellent overview of the accuracy and tradeoffs of the different freq measurement methods titled  "Making Accurate Frequency Measurements."  To boil down the essence of it, the (possibly) increased accuracy of the 2-counter method depends on a relatively long collection / accumulation time which would in turn typically limit the rate at which you could update your measured freq value.
    Now let me offer some friendly but blunt advice.  LabVIEW makes it easy to collect data.  However, there are many other factors affecting the usefulness of that data.  I support the dictum: "It is hard to measure *well*."  Choice of sensors, their sensitivity to environment, various sources of noise, an understanding of the decision to be made from the data, programming methods, etc.  And even more etc.
    What I mean is that just because a hardware freq measurement can be performed that is precise to 1 part per million, it would be very RARE in a test that ALL of those 6 significant digits prove useful.  In your app, the measurements are presently only approximately correlated in time.  And the gap of blind time between measurements will usually represent a much longer period of time than the measurement itself.
    Analogy: suppose you had a 100 minute film at 25 frames/sec for a total of 150_000 frames.  Now start selecting individual frames that are separated by some random # of frames between about 200 and 500.  In the end, you may end up with a sequence of 400 frames in the correct order.  Each individual frame is VERY accurate, but the collection of all of them can zip by in 16 seconds and not give you a much understanding about the movie.
    What would usually work out much better is to sacrifice some accuracy in order to collect a greater quantity of frames.  You trade off the instantaneous accuracy for the overall coherency.
    Sorry, got on a roll...   Back to your question.  My own preference is almost always to avoid consuming hardware resources when not truly necessary.  I've been toying with counters for many years and have still never once deployed an app using a 2-counter frequency measurement.  I do the 1-counter measurement and save the other counter(s) for other purposes. 
    If you've got an M-series board, the 80 MHz timebase allows you to measure a 500 kHz pulsetrain with a quantization error of only about 0.06% (1 part in 160).  There's a pretty fair chance that whatever physical process emits that pulsetrain isn't appreciably more stable than that
    -Kevin P.

  • 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

  • Custom scale for counter input?

    Hello everyone,
    Is it possible to create a custom scale for a counter input? I saw there is a feature to allow input Custom Scale Name to the Channel Property Node. However, when I tried to create a custom scale to input to the channel, I got this error
    Error -200212 occurred at DAQmx Read (Counter DBL 1Chan 1Samp).vi:1
    Property: CI.MeasType
    Corresponding Value: Count Edges
    Property: CI.AngEncoder.Units
    Corresponding Value: From Custom Scale
    Channel Name: CountEdges
    Task Name: MyCountEdgesTask
    Do you know what is the problem with it? Thank you

    How do you have the channel set up? Can you attache the VI's that you are using? Is this a global virtual channel?
    Tim
    Johnson Controls
    Holland Michigan

  • Buffered edge count FIFO overflow even at very low rates

    Dear Forums,
    I am trying to use a PXI-6608 to timestamp the sample clock of a PXI-4498 during analog input. Because the sample rate will be on the order of 20KHz, I want to use a pulse generation task on one counter to divide it down by a factor of 1000, then use that pulse as the gate and the 10MHz clock on the 6608 as the source in a buffered edge -- I expect about 20 edges per second, which should be very manageable to retrieve over DMA.
    The result is that I get error -200279 ("attempting to read samples no longer available") immediately after the vi starts, before I have retrieved even one count.
    This is my first stab at using DAQmx for counter/timer instead of the old DAQ drivers, so I'm sure I've done something wrong, but I can't figure out what.
    I've attached the vi if that helps.
    Thanks!
    Cas
    Solved!
    Go to Solution.
    Attachments:
    simplified chassis test.vi ‏314 KB

    It appears that you have your gate and source backwards.  The sample clock should be ctr0internaloutput and the count edges terminal should be the 10 MHz clock.  You are getting the buffer overflow error because the FIFO on the card is only 2 samples and at 10 MHz these are being rewritten was faster than a computer could possible pull them off the card.
    Doug Farrell
    Product Manager - Condition Monitoring
    National Instruments
    National Instruments Condition Monitoring

Maybe you are looking for

  • Alpha channel in videos

    Hi, i would like to use an video alpha channel. VP6 files with alpha channel are not displayed in a javafx applet. Is there any other format which supports alpha channels in javafx? The corresponding MediaView has compositable == true. Thanks Thomas

  • Applying saved jpeg settings to raw (.raf) file.

    Hi, Please could someone help me out? I have previously imported some raw (.raf) files into Lightroom and done my adjustments - i then saved as jpegs and took all files out of the lightroom dashboard. I now want to go back into a raw (.raf) file that

  • Application background color changes after sometime

    Hi All, We have an R12.1.1 instance on solaris and we are facing a strange problem. The background color of the application changes to blue suddenly and the Users are not able to properly see the links which are in blue. If we bounce Apache, it comes

  • Web Services output

    Hi, I'm new to web services and was wondering where can I intercept the output xml data before it's been sent back to the client. And where does it translates it to xml? Thanks, Kag

  • About transaction handling

    Hi, How to handle transactios in JDBC.Is there any mechanism to lock a row which we are currently working in JDBC?Please help me.