NI 9402 frequency measurement

Hi Forum
I have: Dasylab 11, NI cDaq with a 9402 high speed digital input/output module, Newest version of Daqmx driver
I am using the 9402 module to measure the frequency of a squre pulse signal.
But when I run the setup in Dasylab, I get the same values for each block - the signal is constant for every block.
However when I test the setup in MAX (Daqmx driver software) I get different values for each sample in the block. As it also should be.
Does dasylab only read the first, last or take an average over the samples in the block or what goes wrong?
Rasmus Nissen

Hello Rasmus,
sorry for time delay to check your problem. I have simulated your device situation, see pictures from the appendix. I found that the NI 9402 "continuous mode" is not yet detect from DASYLab driver and always handle via "1 sample polling". I would like check the DASYLab driver sources for the problem. Please contact the DASYLab support ( with your contact address. I would like start to fix the problem, if possible and contact you later.
Best regards,
9402-01.png ‏162 KB
9402-02.png ‏155 KB
9402-03.png ‏54 KB

Similar Messages

  • Continuous frequency measurement~

    Dear sir,
        How are you today?
        I tried to program the "Measure" in LabView 5.1 .  I've the simplified version
    from "LabView Measurements Manual" in page 10-26. Basically, we want to measure the
    frequency change within 20 ms (chirp). So I just naively added the "for loop" enclosing everything,
    as the attached VI. But the testing result (please see the attached document) showed that
    sometimes the counter/timer (AM9513) lost count. Could you please troubleshoot my VI and
    tell me how I should improve?
        In addition, I tried to use the oscilloscope to see the gate signal from counter-1 (counter 5)
    OUT pin, but it showed 0.14V. The signal from GATE pin of counter (counter 1) showed 5V.
    I was expecting what I would see is something like TTL signals with different pulse widths and
    delay widths. Can you tell me what I was doing wrong?
        Thank you for your previous answers!
    Best regards,
    Continuous Measure ‏122 KB
    continuous frequency measurement.doc ‏168 KB

    Hi Margaret,
    I think that there is one way to obtain a count every 20ms. What you will need to do is:
    1. Generate a 50 Hz pulse train
    2. Connect your signal to the a counter source
    3. Connect the 50 Hz pulse train to the counter gate
    4. You will obtain a series of counts over a 20ms period and you will be able to determine the frequency of the signal using post processing by dividing the count # by 0.02.
    I noticed that you are using LabVIEW 5.1. This version of LabVIEW is no longer supported. I highly recommend upgrading to a newer version of LabVIEW. This will allow you to program with the DAQmx driver and creating your application with this driver would be significantly simpler and take a lot less time.
    If you do not want to try this method, then I am attaching the screenshot for measuring the time the while loop takes to execute. I want you to know that the overall time will not have an effect measuring the signal's frequency. There really isn't anything you can do to decrease the execution time for the counter. I hope that you find this information helpful.
    Hal L.
    While Loop Timing.gif ‏12 KB

  • How can we substitute the invalid option "reset after read" in FP-CTR-500 + FP-1600 frequency measurement application?

    We nned to incorpore the values of 2 frequency signals (0-10 Khz)into a process controlled by a VisualBasic application running on 1 PC with W'95. Because the FP-CTR-500 working with FP-1600 hasn't the option "reset after read", the process of reading is a bit complicate, and sometimes, we receive wrong values of frequency from those devices. Could you help me? Is there any extremely reliable method of reading? Best regards,

    For frequency measurement information on the FP-CTR-500/502 modules. Please see KnowledgeBase Article #1TB63SUS
    Ultimately, the FP-CTR-500/502 modules are not designed for frequency measurement, although it is possible to use them to measure frequency. The one thing is that it works best to do the measurements over relatively long integration periods (1/4 second or more).

  • How to use a photogate for frequency measurement using a NI USB-6211

    Hello, I am extremely new to LabView and am having trouble using the counter feature (or if this is even what I should be doing). I am trying to use a photogate as a frequency counter when a voltage spike is created by blocking the sensor. This will then be put into RPM and used to evaluate a small motor dyno I am creating. If anyone has any help or previous vi's they dont mind sharing it would be greatly appreciated. The photogate specifications are for an optek opb930l55. Thanks 

    Configuring a counter input task will be a little different depending on the type of DAQ card that you are using to read the digital pulses.  You just need to wire the voltage from the photogate to one of the counter pins on the card.  Then follow one of the many examples for measuring the frequency of pulses.  If your card allows it, I would suggest choosing the Counter Input >> Frequency measurement from the DAQmx Create Channel VI.  If you have questions about how to do this with your specific DAQ device, please provide more information
    Zach C.
    Field Engineer
    Greater Los Angeles

  • New M Series DDK Example: High Frequency Measurement with 2 Counters

    This example demonstrates how to configure two counters on an M Series device to measure a high digital frequency. One counter generates a continuous pulse train of a set frequency while the other counts the external signal using the pulse train to latch values. Data is transferred via DMA.
    Use this example to add high digital frequency measurements or DMA data transfer for counter input to your driver.
    Please let me know if you have questions or problems. Thanks :-)
    Joe Friedchicken
    NI VirtualBench Application Software
    Get with your fellow hardware users :: [ NI's VirtualBench User Group ]
    Get with your fellow OS users :: [ NI's Linux User Group ] [ NI's OS X User Group ]
    Get with your fellow developers :: [ NI's DAQmx Base User Group ] [ NI's DDK User Group ]
    Senior Software Engineer :: Multifunction Instruments Applications Group
    Software Engineer :: Measurements RLP Group (until Mar 2014)
    Applications Engineer :: High Speed Product Group (until Sep 2008)
    gpctex5.cpp.gz ‏4 KB

    You should connect the signal (whose frequency needs to be measured) to Ctr-1, and there gonna be an internal connection between the output of the first counter and the gate of the second counter (as described here).
    You may want to check this link as well.
    I am not allergic to Kudos, in fact I love Kudos.
     Make your LabVIEW experience more CONVENIENT.

  • PXI-6624 Pulse Frequency measurement

    Hi.  I'm working with a PXI-6624 and am interested in doing pulse frequency measurements to get both frequency and duty cycle on its inputs using DAQmx.  
    Whenever I go to create the virtual channel however, I get error -200431:
    "Selected physical channel does not support the measurement type required by the virtual channel you are creating."
    "Requested Value: Pulse Frequency"
    "You Can Select: Frequency, Period, Pulse Width, Semi Period, Two Edge Seperation, Position:..."
    Is this card really not capable of doing these pulse frequency measurements?  
    Go to Solution.

    Yes, the "Pulse" (not to be confused with "Pulse Width") measurement was introduced with NI's STC3 devices including X Series and CompactDAQ.  
    Pulse Measurement:
    However, you should still be able to measure frequency and duty cycle on your card with a semi-period measurement:
    Semi-Period Measurement:
    Images are from the X Series User Manual.
    The difference between the two modes comes down to how the data is stored and buffered on the card--with the semi-period method the hardware doesn't distinguish between high and low samples and puts everything into a single buffer.  However, if you start the counter off the appropriate edge (see below property node), then you would know in software the order of high and low samples and can pretty easily calculate frequency and duty cycle from this.
    Best Regards,
    John Passiak

  • DAQ frequency measurement using anolog input channel

    I try to develop a DAQ application which run on a real time target.
    I want to measure frequency using anolo inpur channel of my DAQ card. I have a problem.
    Let me first try to explain what i trying to do. In the first loop i do sampling and show the result as double array.
    I need to show samples as double array so i can not read sample as waveform. With a shared variable i sent these samples to second loop.
    First loop reriod is msec and second loops period is 20 msec.So when the second loop run, 20 samples were alraady ready, frequency measurement is done.
    The problem is that i need to show frequency measurement as far as possible. Say frequency of my signal is about 100 hz, then this
    configuration gives correct frequency measurement. But if frequency of the signal is about 10 hz, this configuration fails since period of second loop is 10 msec and it is not enough time to measure a 10 hz signal. But if i adjust period of the second loop as 100msec,
    then i can measure 10 hz signal but then i can give measurement of a 100 hz signal  +90msec late. What can i do so i can measure frequency af signals ranges 0-100hz and give measurement result as far as possible?
    measure_amp_freq.GIF ‏35 KB

    What you are doing doesn't make any sense to me. First of all, you should take multiple samples with the DAQmx Read and not one sample at time with the timed loop. Your frequency measurement will then actually be more accurate. You also should return a waveform. That includes timing information that the Freq & Amp function needs to determine the frequency. It cannot do it with a dbl array. If you have to display a dbl, then just use the Get Waveform Components to extract the y array. You can get rid of the second timed loop and use a regular loop for the DAQmx Read. If you just set the rate to be twice the highest input frequency and acquire enough samples for a couple of cycles, you should have a pretty accurate reading.

  • Frequency measurement using Labview 8 and Fieldpoint FP-CTR-502 - wind speed measure

    All the information regarding this kind of application seems to be outdated, I did not find no solution or example to construct frequency measurement VIs using Labview 8
    The examples at "NI Discussion Forums :
    Most Active Hardware Boards :
    FieldPoint Family :
    Low-Frequency measurements using counter/timer" is very strange and so far the steps given seems to be usefull only do old Fieldpoint Explorer.
    I was trying to find a way to learn how to make an anemometer send its signal to a FP-CTR-502 but I have no sucess.
    I am realy very new on this Labview stuff, any help would be welcome.

    (similar thread here)
    Message Edité par Mathieu R. le 12-23-2005 02:28 PM
    .mrLeft{float:left} .mrInfo{border-left:solid 1px #989898;font-size:x-small;color:#989898}
    Mathieu R.  
      CTD - Certified TestStand Developer / Développeur TestStand Certifié  
      CLAD - Certified LabVIEW Associate Developer  

  • FP-CTR-500 and Frequency Measurement: How to modify it to report the frequency (0-10 Hz) every one minute?

    How to modify "Frequency Measurement" to report the frequency every one minute?  
    The signal frequencies vary from 0 to 10 Hz (see the analog output plot and attached sample data file), so I want record the average frequency every one minute. 
    Software: Labview 8.5 
    Hardware: FP-CTR-500
    Program: "Frequency Measurement"  --build in and under "NI example finder", It was attached with this message. 
    Physical wiring: (1) The signal I want to measure to count input 1 (pins 2 and 18).  it is a pulse signal (range from 0 to 1 V, see the plot and attached data file). 
     (2) Wire Output 0 (pin 130 to gate 0 (pin 9).   Do com pins 26 and 30 need to wire together? 
    FP-CTR-5000 was set up in Max based on the program instructions. I have tried different gating pulse frequency, my readings are always "0". 
    H2O_20130809.xlsx ‏18 KB
    Frequency ‏35 KB

    CTR-500 high pulse is >=10V. Hence, it always read your pulse as low. With this low voltage pulse, you must use analog input module, and write a program to read pulse from analog level. You must also make sure that you pulse is not so narrow that cFP loop is not fast enough to capture voltage change.

  • Digital frequency measurement speed in labview

    I am using a USB 6210 device to measure low frequencies of 50 to 1000 Hz. I need to log the frequency every 50ms. I do this in a while loop in labview using a 1 counter low frequency measurement in labview and saving the data using express VI.Each iteration of the loop takes atleast 60 to 100 ms just to read the frequency inside the loop. How do i increase the speed of measurement in Labview ?
    Go to Solution.

    Here is a table of the Counter terminals and related PFI lines.  This can be found in the NI DAQmx Help. (
    Default NI-DAQmx Counter Terminals
    Counter/Timer Signal
    Default Pin Number
    Signal Name
    CTR 0 SRC
    PFI 0
    CTR 0 GATE
    PFI 1
    CTR 0 AUX
    PFI 0
    CTR 0 OUT
    PFI 4
    CTR 0 A
    PFI 0
    CTR 0 Z
    PFI 2
    CTR 0 B
    PFI 1
    CTR 1 SRC
    PFI 3
    CTR 1 GATE
    PFI 2
    CTR 1 AUX
    PFI 3
    CTR 1 OUT
    PFI 5
    CTR 1 A
    PFI 3
    CTR 1 Z
    PFI 1
    CTR 1 B
    PFI 2
    PFI 6
    When you choose counter 1 in the Create channel VI it automatically reserves the gate which is PFI2.  If you use Counter 0 then PFI 2 will work fine.  Likewise if you use Counter 1 you can use anything but PFI 2.
    Message Edited by Jason_D on 10-24-2008 11:43 AM
    Jason Daming
    Applications Engineer
    National Instruments

  • DAQmx Error 89137 When trying to make a high frequency measurement.

    I am using a PCI-6602 Timer/Counter for multiple measurements on a serial interface...
    I have the clock line connected to Gate0, the enable line to Aux0 because I need to make a two-Edge seperation measurement between the two later...
    But I also want to make a "Period/Frequency Measurement (High Frequency with Two Counters)" measurement...
    This requires that the signal to be measured is on Source0...
    I implimented the following Code:
    void meas_FP_Freq(float64 *Freq0, float64 *Freq1)
    TaskHandle CLK0_Freq, CLK1_Freq;
    DAQmxCreateTask ("FP_CLK0_Freq", &CLK0_Freq);
    DAQmxCreateTask ("FP_CLK1_Freq", &CLK1_Freq);
    DAQmxConnectTerms ("/Dev3/PFI38", "/Dev3/Ctr0Source", DAQmx_Val_DoNotInvertPolarity); // Gate0 to Source0, No Error....
    DAQmxConnectTerms ("/Dev3/80MHzTimebase", "/Dev3/Ctr1Source", DAQmx_Val_DoNotInvertPolarity);
    DAQmxCreateCIFreqChan (CLK0_Freq, "Dev3/ctr0", "", 6000000, 6500000, DAQmx_Val_Hz, DAQmx_Val_Rising, DAQmx_Val_HighFreq2Ctr, 0.001, 4, "");  // High freq measurement
    DAQmxCreateCIFreqChan (CLK1_Freq, "Dev3/ctr1", "", 6000000, 6500000, DAQmx_Val_Hz, DAQmx_Val_Rising, DAQmx_Val_LowFreq1Ctr, 0.001, 4, "");
    DAQmxReadCounterScalarF64 (CLK0_Freq, 3.0, Freq0, 0); // Run-Time Error -89137 Specified Route cannot be satisfied..etc
    DAQmxReadCounterScalarF64 (CLK1_Freq, 3.0, Freq1, 0);
    DAQmxDisconnectTerms ("/Dev3/80MHzTimebase", "/Dev3/Ctr0Source");
    DAQmxDisconnectTerms ("/Dev3/80MHzTimebase", "/Dev3/Ctr1Source");
    DAQmxClearTask (CLK0_Freq);
    DAQmxClearTask (CLK1_Freq);
    The "Low Frequency" method works fine, but the resolution is too low...
    Every help file I've read indicates I can use different PFI inputs for measurements... What am I missing?

    The reason that you are getting the error is the PFI lines are being reserved twice. You don't need the DAQmx Connect Terms functions in your code because the DAQmx driver does this for you automatically. If you still receive an error after doing this, try to changing the low frequency counter number.  I hope this helps you with your application.
    Hal L.

  • Scxi 1126 frequency measurement along with other scxi modules

    I want to measure frequency signal using sxci 1126. I have gone through the example code for sxci 1126. I am using NI-DAQ and Labview 7.1.
    The example code is applicable when am acquiring only from 1126. I have to acquire data also from 1102 102B along with 1126.
    In the example code along with AI and Ai there are two additional vi's like AI and AI Trigger I understand that they are used for reading from 1126. My worry is how this is going to affect my acquisition from other scxi modules as all the modules are in multiplexed mode.

    Hi Bipin,
    Looking at your code, I see that you are still using Traditional DAQ. Since you have LV 7.1, you can take advantage of the new features of DAQmx.
    With DAQmx, you can create a virtual task that includes all of the different types of measurements you want to make. Once you set up the task in MAX, you can place it on the block diagram and automatically generate the code necessary to execute this.
    To do this, open up the Measurement and Automation Exlporer (MAX). Select "Data Neighborhood" from the tree on the left. Then click the button labeled "Create New." Create a DAQmx Virtual Channel. Follow the series of menus to set up your first type of acquisition (1126 frequency measurement). When you are
    done creating the task, you can add the second type of measurement to that same task. In the task config page, you will see a white box with the name of the channel you just created in it. Above the name you will see an "Add" button. Click on this button and follow the menus to set up your second measurement (1102 module).
    Once they are set up, save the task and open LabVIEW. Place the DAQmx Task Name constant on your block diagram found in All Functions >> Data Acquisition >> DAQmx... the task name constant is a purple colored box. Clicking on the box once its on the block diagram will expand a menu that will let you choose your task. Once selected, right click on the task name and choose Generate Code >> Example. This will automatically generate the code necessary to run the tasks. Simply hit the run button and enjoy!

  • NI9411 wrong frequency measurement of flow sensors / 24 impulse signals

    Hello Ni Forum,
    I already searched for similar problems, but haven't found anything helpful. So I'm posting our problem here. I'm apologizing in advance for bad english, it's not my mother tongue
    We're encountering some strange behaviour of our NI9411 Module. We're using it in a Compact Rio with some other modules (2x Analog In).
    Our goal is to measure the frequency of three flow sensors (impulse high = 24V, 0-22kHz) among with a torque sensor (TTL 5V, 30-60kHz) and a speed sensor (TTL 5V, 0-51,2kHz).
    They are wired as follows:
    DI0a = torque sensor
    DI1a = flow sensor 1
    DI2a = speed sensor channel A
    DI3a = speed sensor channel B
    DI4a = flow sensor 2
    DI5a = flow sensor 3
    Correspondig ports b are left unconnected, as it is said in the data sheet. All ground ports of sensors are connected to COM port of 9411. The module was connected to a 24V power supply.
    Now the torque and speed sensor measurement works fine. But measuring the signals of the flow sensors seems to be difficult.
    If an external frequency generator (impulse high about 9V, f=1,000kHz) is connected to port DI1a instead of the sensor signal, LabView shows exactly 1,000kHz. DI5a showed an avarage of 10 Hz, with a range from 10 to 60 Hz. DI4a equaled constant zero. The flickering up to 60Hz of DI5a was gone after disconnecting the 24V supply of the module. This changed nothing on the phenomenon described below.
    If the signal high impulse voltage is raised, the measured signal frequency goes up to 1300 Hz @ 24V signal high impulse voltage. The signal additionally raises, if an oscilloscope is connected to DI1a, to 2180 Hz (range 2110 to 2240Hz). However, there is no change of frequency if the osci is connected to DI5a. With the 24V supply connected, DI5a showed a frequency up to 600Hz @ 24V signal high impulse voltage on DI1a, also rising when connecting the osci on DI1a. As mentioned, there was no frequency measured on DI5a after disconnecting the 24V power supply.
    The signals of the generator showed some peaks on each edge (rising and falling) with values for example of 11V above high impuls voltage of 9V (20V together). That may causes that wrong frequency measurement.
    The signals of the flow sensors do not have such peaks, the LabView-frequency nevertheless does not match the real frequency, as shown below (all values in Hz):
    ideal values
    Flow Sensor 1
    Flow Sensor 2
    Flow Sensor 1
    Flow Sensor 2
    We're kind of helpless now. How can we get the signals of the flow sensors measured the right way? Are we doing something essentially wrong? Thanks in advance for offered help. I hope, I've given any necessary information. Any missing details will of course be delivered.
    Puls-Measure-VI is attached beneath.
    Johannes Rost
    vi.png ‏20 KB

    Dear Lynn,
    thank you for your reply. The impedance was an issue that our local technical distributor already suggested to check. According to the datasheet of the flow sensor (see attachement) it can drive a current of 25mA. The signal generator we used is a test generator that can be used instead of the flow sensors to check the any evaluation unit the sensor is connected with. So it should generate signals that are equal to those the sensor would have generated. And even with this the frequencies measured with LabVIEW are not as expected.
    We are in contact with the sensor manufacturer to exclude mistakes in connection on the sensor side. But the behavior with the signal generator makes us think that is has to do something with the characteristics of the NI9411 that we don't know yet.
    block diagram signal amplifier and signal description.png ‏151 KB
    technical data.png ‏124 KB

  • Why does my AI acquisition slow down to my frequency measurement rate?

    I'm using Labview/Daqmx to program my SCXI 1520 and TC modules while at the same time using the multifunction capabilities of the E-card controlling the SCXI.  This has been fairly easy until I wanted to use the frequency and counter measurements (outputs/DIO works great).  I'm using a waveform with buffered acquisition for the read on the AI channels and obviously there is no waveform for the frequency measurement so I'm just combining the signals using the dynamic data.  This works great when my input frequency is higher than my acquisition frequency.  When my input frequency is lower than my acquisition frequency the acquisition slows down to that frequency and the AI read falls behind (buffer fills while waiting for another frequency measurement).  I'm assuming the frequency read is not keeping up with AI read.  I understand that as the frequency is reduced it takes more time to calculate the frequency.  So how do I "read" the frequency measurement at the same rate as the AI data?  I'm fine with using the last frequency measurement until a new frequency measurement is available but I can't even seem to be able to do that.
    An example of the problem is measurement of vehicle pedal force (AI channel) with pulse input for vehicle speed.  Assuming 100 Hz acquisition and the vehicle stopped or going slow (very slow pulse train) I should be able to acquire data at 100 Hz even if I just use the last data point for the frequency channel until another point is available.
    Please help, thanks.

    Basically, the very fact that you're *doing* a frequency read suggests that you don't know the expected freq ahead of time, and probably suggests that it can vary.  The waveform datatype assumes a constant interval between samples which wouldn't generally be true for frequency measurement, and that's why you can't use it.  Since the actual timestamps of the frequency measurements are NOT the same as those in the analog waveform, it's likely a mistake to pretend they are.
    My method is to create my own array of "timestamps" for the frequency data.  Create a For loop with a shift register initialized to 0 from outside the loop.  Let your freq array auto-index the loop.  On each element, perform (1/x).  Add result to the left-hand shift register value and write it to both the right-hand shift register and to an auto-indexing output.  When the loop completes, the output array will hold timestamps that correlate to your freq measurements.  From there you can choose whether to display on an X-Y Graph, or whether to perform some interpolations to calculate freqs at the analog sample times or vice versa.
    -Kevin P.

  • PCIe-6321 frequency measurements

    I am trying to use a PCIe-6321 to perform a simple frequency measurement (800-2500hz).  Are there daqmx functions for frequency measurments?  I tried some of the CVI examples but they throw error messages.  Is there an example were I can measure frequency on one of the analog inputs?

    Your card have both analog inputs and counter inputs; they behave differently and for each of them there is a set of examples that explain the basic measurement types together with cabling.
    Search with the example finder (Help >> Find examples... menu item) with "counter/timer" keyword and you'll find the examples you are looking for. Also looking for "frequency" drives you to the same examples.
    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?

Maybe you are looking for