using counter on NI 9401


We ordered the cRIO 9035 system with several Modules.

One of them is the NI9401.

I want to use this module to count the pulses of a flow meter.

In front, I am a beginner and started just look at a lot of tutorials and created Basic VI

  1. This Module has onboard counters, or is it only possible to use the 'material' - counters in the chassis through this Module?

    I ask this, because I can put the Module via "Digital specialty Setup" as a counter.
    If I do, it would be possible to simply create a while loop, place the channel on the inside and tie him to a digital item?
    Or is the only way to count impulses (rising edge) to use VI as the 'edge counter VI' the example of VI?

  2. My flow meter uses a Hallsensor and produces rectangular pulses at 40 Hz max.
    It is absolutely necessary to use a FPGA or can I use a VI on the host computer?

We use 4 of these flowmeters (and many more sensors like Termocouples (NI 9211), solenoid valves (NI 9482) or a AKD-servomotor (NI 9472).)

All the measured data should be written to a file (for example, form exel).

Magnetic valves must be triggered if a certain number of pulses is counted.

Yet once, it is absolutely necessary to use a FPGA or can I use a VI on the host computer?

I know there is a lot to do and I have to learn a lot more, but I'm on it (its for my Masterthesis).

For now, the answers to questions about existing or not existing edge counter would be great.

Thank you for your support.

Greetings from the Germany,



Lukus salvation,

Greetings from Munich (since it is a public forum, I am obliged to answer in English, in any case).

(1) when you use a cRIO you don't have a strict meter limitation (especially if you program the FPGA) for your digital inputs. Maybe read you something about that and that only applies to the cDAQs (because he (mostly) counters come from cDAQ chassis so they are more limited)

"If I do, it would be possible to simply create a while loop, place the channel on the inside and tie him to a digital item?"


"Or is the only way to count impulses (rising edge) to use VI as the 'edge counter VI' the example of VI?

I'm not sure which exact VI you are referring to, but on the FPGA you could implement a custom counter. That would work too.

(2) you can do two ways (Scan Engine Mode and FPGA)

If you write a master's thesis, you may be eligible for a greatly reduced price. The course Embedded Control and Monitoring ( would be very useful for you:

Forderprogramme as research, training und Lehre - National Instruments Germany GmbH

Best regards


Tags: NI Hardware

Similar Questions

  • Where can I download use-counter-300 -

    Notes for version found at , we should be able to update the counter use 2.3.2 3.0 using a file called use-counter-300 -, but there is no URL provided, only the complete OVA file download. The file will appear on the site any time soon?

    I just checked the update zip appears now.  Please confirm that you are able to download.

    Please see the release notes especially the part about removing the password by e-mail before moving because of the new encryption mechanism.

  • vCloud use counter with multiple vCenters 2.3

    We are trying to watch three vCenters with one instance of vCloud meter use (two of them are related to each other and the third is in itself).  However, we can get only stats among the related modes vCenters, despite the fact that all 3 works when I test them.  Has anyone else seen elsewhere?  I just create a unique use for each vCenter count?

    (I'll put the long rant on this product required/free/bad-taken in charge for now, but it's grind my nerves).

    Sorry for the lack of response on this one.  I believe that we have solved the problem, when we did to 3.x.

  • Update a table using COUNT (*)

    I was wondering if there is a way to write the following code uses a single stmt:
     SET TOT_APPOINTMENT = update_rec.TOT
      WHERE CODE = update_rec.CODE;
    Kind regards.

    You can use what is called a statement update correlated . Note that this is not tested:

    UPDATE test t1
    SET    tot_appointment = ( SELECT COUNT(*)
                               FROM   test t2
                               WHERE  t1.code = t2.code
  • use count

    just an idea I had...

    I think a counter for use on the library would be a great feature, combined with the ability to delete of course.

    This would help to reduce the size of the project greatly.

    Catalyst is going to be beautiful. Can't wait for the new beta!

    Hi Nick,

    Post it on the site of ideas!


  • use count (*) in EXECUTE IMMEDIATE

    Hi all

    I use Oracle 10 g R2.
    I'm trying to get the number of records in a table, whose name is given when running. I don't know how to return the value of count (*) in a variable.
    I need a treatment based on this charge.

    I thought I can use back in the clause, but seem to work with column names only.
    Any suggestions/indiactors appreciated.
    Thank you.



    Try this
    -not tested

    sql_stmt VARCHAR2 (2000);
    lv_output varchar2 (10);
    sql_stmt: = "Select count * from table_name';"
    Run immediately sql_stmt into lv_output;
    dbms_output.put_line (lv_output);

    Thank you

  • How to use count imaq objects in a while loop?

    Hello, I am using objects IMAQ County and works well, but when I use a loop and I want to change the picture that I analyze to see results instantly, the search box, and the locations of the remains of the objects in the picture, even if I return to the original (for example at the threshold) values, objects of the location and the green rectangle remains there as the next image :

    This is the pattern I use:

    I used this same setup with the 3D IMAQ view and it works well, I change the values and changes in 3D view so do I.

    I use unduly the IMAQ dispose?

    Thank you very much for your help and comments.


    The problem is due to the way works IMAQ Vision: the thread of the image contains a reference (handle), to the image, not the image itself. Means that once an image has been changed somewhere, the mods are propagated worldwide.

    The solution is simple: just add an IMAQ clear Overlay immediately upon entering the while loop (and add a small timer inside the loop).

    As an example, see the vi attached.

  • Can I get my key of Activation Windows 7 use count reset?

    I often re - install Windows 7 I have main regularly updated my system / re install so that a new installation (much faster)... Unfortunately, I recently started to get an error code saying I used my key too many times... I called Microsoft Customer support and after 2 hours juggled back from a Ministry to and being hung up, I finally got someone who could help... They did a phone activation and everything works now... The only problem being that I'll have to go through that * every time that I try to reinstall windows in the future... Is it possible to get my CD key discount or I'm just going to break my legitimate OS in the future when I re format my system (that I will not to put up with the customer service given by Microsoft).

    If you make major changes such as changing the hard drive or motherboard will require relocation and reactivation every time.

    My recommendation is to create a system image now of your activated installation.

    So when you decide to make such changes only to reinstall Windows 7 or to change the key components, restore the image.

  • SQL - using COUNT query

    I have a database like this structure:

    Table - lodges

    LodgeID (PK)



    Table - scores

    ScoreID (PK)



    LodgeID (FK)

    I try to return the results in the form:

    LodgeID, Lodge, category, number of Scores in this category, the average Score in this category

    Thus, for example, if I had:


    LodgeID Lodge

    1, lodge a

    2, two lodge


    ScoreID, Score, CategoryID, LodgeID

    1, 3, 101, 1

    2, 5, 101, 1

    3, 7, 101, 1

    4, 10, 102, 2

    2, 5, 20, 102

    2, 6, 30, 102

    7, 40, 102, 2

    I will return:

    1, box 1, 3, 5

    2, Lodge 2, 4, 25

    I tried things like:

    SELECT COUNT (ScoreID) as scoreCount, AVG (Score) as Averagescore, Lodge OF scores_temp INNER JOIN lodges_temp ON scores_temp. LodgeID = lodges_temp. LodgeID

    Without success. Pointers would be much appreciated.

    Ignore that - just need to add a GROUP BY clause.

  • 9401 serving counter in cRIO 9022

    Hi all

    I use cRIO-9022 and 9401 is one of the modules of him. I want to use 9401 as counter in the FPGA VI. Is this possible? As the specialized digital Configuration option is not available when the module is moved to the target FPGA.


    Yes, you can, and many of us do on a regular basis.

    Good read from this link to help you get started.

  • How wire VI for 2 encoders using NI9401

    I have the attached vi which measures the period.  My understanding is that the NI 9401 can be measured in the time period for up to 4 encoders.  Do I need a sequence of data acquisition by encoder, (e.g. the attached vi should measure period for 2 encoders simultaneously)?  I want to run up to 16 encoders, so I have to copy/paste this code 16 times to collect data period for 16 encoders simultaneously?

    I use cDAQ9174 and NI 9401.  My understanding is that the 9401 can measure up to 4 encoder signals.  If I put a second NI 9401 in the cDAQ9174, can I measure 8, or does the cDAQ9174 limit the number of counters that can be accessed independently?  If I have to use two of cDAQ9174, connected to a PC, Labview acknowledges the eight slots as unique, for example 1-8, instead of two sets of 1 to 4 for the addressing of the channels?

    All generic simultaneously custom boards of many encoders (period) are welcome.

    Thank you


    -Even if you put two NI 9401 in the cDAQ-9174, remember that the counters are in the chassis and this camera has just four meters.

    -You can run counter in parallel tasks.

    -If you plug two cDAQ-9174, MAX recognizes two different devices.


  • How can I use a wait with a tank xD ending function


    I want to read a series of data per second. I tried to use an incentive (ms), but it does not work if I put a termination tank xD. How to read data series every second?

    Eric wrote:

    How fast data arrives?  It is fairly regular or inconsistent in the calendar?

    As of soaps 100 counts/sec. (i am giving 100 counts/sec for checking purpose) Yes, it is incompatible to the calendar. (Radiation using counter measure Geiger counter).

    What you're trying to do with your 1 second of waiting/reading requirement?

    I need to measure the count rate (No. Heads of charge/sec), for that I need to read the data of every second. If there is no possibility to measure the County rate(counts/sec) without reading the data every second, it also helps for me. If possible, please give me a way to do it.

    What type of device you are talking about?  Are you sure he's sending reliable data?

    PSoC 4, I'm sure it sends the data reliably. And I get accurate data (in labview) which he is sending. But when I try to read the data of every second that I'm having this problem.

    I need to read serial data every second, or I need to measure the rate of cost by reading the continours of data series (inconsistent in timeline).

    You that VI you home is the same as fixed before.

    So he sends 100 readings per second, but you want only want to work with data which occurs at the 1-second interval?

    If this is the case even the second 1, configure the value of time delay on the VISA should not be a problem.

    So, you still want to read all the data that it is.  You cannot directly control the device and the frequency at which it sends, then keep reading as fast he sends.  Use the character to stop to your advantage so that you know that you have found complete messages.

    Now if you only actually use of data every 1 second, then use and elapsed time VI with a 1 second count on that to drive a deal structure that actually processes the data.

    Now, you will get all the data that comes in, but work with the data according to the interval you want.

  • Edge counting and Source of Timing for timed loop on the request for Acquisition of data - not acquiring data on specified rising edge

    Operating system: Windows XP

    Hardware: PCI 6259

    Terminals used: PFI0 and PFI2

    Counters used: Ctr0 and Ctr1

    IM developing an application for the acquisition of data where timed loop synchronization source comes from my PFI2 (using the string A of an encoder).  IM basically trying to acquire data based on the number of ticks from my encoder.  For the synchronization source, I use counter 1 to capture the rising edge and have the loop time-acquisition of data.  At the same time, Im using the counter 0 to count the number of rising edges so I know exactly in what tick data was acquired.  PFI0 and PFI2 are connect to channel A of the encoder.


    Timed loop acquires data at each tick, because when I discover the data (text) file is missing count of my encoder value.  Is it because there is a limitation on the Windows operating system?  I used a noculars to measure the frequency at the maximum rotation of the channel encoder and 6,757 kHz.  All solutions?

    Also, is there anyway I can route the source channel internally an encoder to generate synchronization source instead of using another counter?  I have attached my VI.


    All the samples that you acquire will be read by LabVIEW in a sequential manner. Figure 4-21 on the M-series on page 80 (4-34) shows that you will acquire all the samples you request all channels that you enjoy in sequentially.

  • DIFFERENCE BETWEEN count (*) and Count (1)

    If this link means

    It works the same way

    Summary: -.

    Yes, he does.  As Jonathan, Oracle rewrites internal count (1) by count (*) in recent versions.

    In general, I suggest using count (*), since that's what Oracle prefer of course (it rewrites the other requests to make a count (*) if possible).


  • What is the difference between Count (*) and Count (1)?


    can you please what is the difference between Count (*) and Count (1)?

    I saw that Count (*), Count (1), Count (2)... etc return values from a table. Is there an exact difference between them?

    Have you read the forum space FAQ? I'm sure that you don't have because it is answered there.

    It is also answered via Google.

    The short answer is: there is no difference, unless you use count (1), count (2), etc. instead of count (*) it makes you look like an amateur.

Maybe you are looking for