Using a 9205 to measure RPM

I have not used labview in over 10 years but now have an application that requires but I am more then rusty. I am trying to measure RPM using a 9205 module and I am sure there is a way to do it. I have a pulsed voltage output from my measurement circuit and so far I am capturing the voltage. Can someone suggest a way to convert these voltage pulses to an RPM value. I am sure some type of leading edge counter would work.
Thanks

Not the cheapest route but there is a SCXI card that measures frquency.
http://sine.ni.com/nips/cds/view/p/lang/en/nid/1661
There may be some other frequency cards this is one I have used in the past.  With this card you can create a virtual channel and ask it what frequency the analog signal is going into it.  From here there is a conversion from frequency to RPM depending on the type of resolver or hall signal you are using to generate that signal.
This method is the easiest but the cheapest would be to get a cheap AI DAQ device that can measure several times faster than the generated signal (nyquist theorem) then analyze the series of AI reads to determine the frequency.  Then convert frequency to RPM.  Depending on the signal a USB DAQ device might work, if not a PCI or PXI + MXI card would still probably be cheaper than the SCXI route.
Unofficial Forum Rules and Guidelines - Hooovahh - LabVIEW Overlord
If 10 out of 10 experts in any field say something is bad, you should probably take their opinion seriously.

Similar Messages

  • How to use cfp ctr 502 for rpm measure+cfp configure in labview

    i'm new in handling cFP's,i need to measure rpm of an engine using cFP CTR 502.Plz i need detail regarding which method either pulse counting or frequency method is required for my application,Plz also tell me is there any possibility of configuring cfp using labview

    Hi,
    please see the following link to NI-Discusion forum. There is simaler question.
    http://forums.ni.com/ni/board/message?board.id=110&message.id=1764&requireLogin=False
    I also send you tow links to LabVIEW examples. I hope it helps.
    http://venus.ni.com/stage/we/niepd_web_display.DISPLAY_EPD4?p_answer=&p_guid=BCB1261CBE2635D2E034080020E74861&p_node=174404&p_rank=&p_source=Internal&p_submitted=N
    http://venus.ni.com/stage/we/niepd_web_display.display_epd4?p_guid=BCB1261CBE2635D2E034080020E74861&p_node=
    TN

  • Measure rpm and PWM signals using digital input of NI9401 module

    Hi, is there a simple way how measure rpm (to 5000 rpm) and PWM (about f=3kHz) signals using digital input of NI9401 (ultrahigh-speed digital I/O)  module plugged in NI 9172 ?  I will wellcome any suggestions and VI examples (bether still). I'm begginer using LView 8.2. I apologize for my poor English. Many thanks.

    Hi CUA,
    Since you have already the right tools, you just need to get started with the software. The NI-9401 will give you access to the counters that are inside the cDAQ chassis 9172.
    You need to place the module in slots 5 or 6. You can read in how they work and how to configure them in the counters section of the user guide found here.
    Now to measure rpm, you can either measure the period of the signal (seconds) and multiply by 60 to have minutes and the number of ticks per revolution. You can find a shipped example to read period called “Meas Dig Freq-Buffered-Cont-Large Range 2 Ctr.vi” found under Hardware Input and Output » DAQmx » Counter Mesurements
    To measure PWM, it is similar procedure and you can read the semiperiod (high time or low time). There is also a shipped example called “Meas Semi-Period.vi” found under the same location.
    There is great information for these kind of task at this page or just post back if you need to.
    Hope this helps.
    Gerardo O.
    RF Systems Engineering
    National Instruments

  • I want to measure rpm using 100 ppr incremental encoder via digital input

    i want to measure rpm using 100 ppr incremental encoder  via digital input max speed (4000 rpm)
    am using 9178 c-DAQ chassis and 9426 digital input module
    pl provide me example code for this

    Hi asaccullo.
    The recommended settings for encoders are using the counters in the daq cards. Using digital I/O’s is not recommended, the encoders send digital signals but one of the main differences between using digital IO vs counters is that counters are designed to handle these type of events.
    Here I found several examples in ni.com/code that you might check:
    Imitation Quadrature Encoder with DAQmx Counter Tasks
    Use Counter Frequency to obtain an Encoder Rotational Speed
    An Elvis is a daq device, so this should work for you.
    I also found an example for myDAQ, it uses the DIO but with a counter task in the set up.
    Regards,
    steve.bm
    AE | NI

  • How to measure RPM using digital I/O

    Please tell me how to measure RPM using Digital Input or please give me a code for this.

    You probably aren't going to find anyone to just give you code. Especially because you don't specify the hardware you're using. Doing this on FPGA is different than using DAQmx to do it. With FPGA you count pulses over a specified time. Using boolean logic from the digital DI node is a common way but there are others. (if you are using FPGA I can draw up an example, but I believe there is one on NIs website if you search google for it),. Then, if you want, you can run the data through an IIR filter, especially if you have a low resolution or slow moving encoder. Either of these conditions can result in very large difference of RPM even if the actual speed is not varying much (if you need an example why I can provide more detail, but some simple math calculating RPM should explain this. Obviously lower resolution will giv eyou less accurate results).
    If you use DAQmx you can set up a frequency task and it will return the number of pulses in a specified time frame; then you can convert this to RPM based on your encoder resolution and take the same steps of running it through a filter to smooth it out if need be.
    CLA, LabVIEW Versions 2010-2013

  • How to measure more than 10V DC voltage using NI 9205

    Hello everyone,
    I have a solar panel, controller, battery and load. I need to measure their voltages and currents.
    The tensions are higher than 10V DC.
    I need to use the NI 9205 to measure them? I do not know if a resistive divider will work?
    Anyone have any suggestions?
    thank you

    In the past, we've used simple resistor dividers.  More recently, we added op-amps to the circuit so that the DAQ impedence didn't mess with our signals.  But the simple resistor dividers work just fine.
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines

  • How can I measure RPM with CTR-500 module?

    I have used  the CTR-500 module for mesurement of  motor RPM. But it doesn't have direct option to measure  RPM ,
    so i have count pulses for  1sec (then reset the counter) and  by calculation show the result for 1min. But it varies every time ,cant give me fix RPM.
    I want reliable solution for this.

    min
    You have not said how much the RPM actually varies from reading to reading and what the range of measured RPM is for the process.  This variation can be caused by a couple of things.  One would be actual variations in RPM due to changes in motor loading.  What is this motor driving?  Most RPM readouts use some form of sample averaging to smooth out the readings.
    A second cause could be your vi.  Suggest you post a copy of your vi. 
    In case you have not seen it, here is a link to a KB about measuring frequency with cFP.  It also links to several other docs on the same subject .  http://digital.ni.com/public.nsf/allkb/D8DB42F9FDC3607E862568640047F144?OpenDocument 

  • Measure rpm

    Hello,
    I am new to LabView. I have a cDaq 9172 and three modules (9263, 9201, and 9401). I am trying to measure rpm of a shaft with a 24 tooth gear and magnetic pick up. The shaft is expected to rotate in a range between 0.5 and 5 RPM which corresponds to 0.2-2Hz square wave signals (analog acquisition). I've tried using the frequency channel on the digital module (9401) but I couldn't get the programming to wait to aquire the relatively low frequencies. I've also tried post processing the analog signal (module 9201) but the Tone Measurement VI gives me inaccurate measurements at low frequencies (<1Hz). 
    Could someone please offer me a simple solution for measuring frequency accurately for the expected range so that I can calculate the RPM?
    Much appreciated,
    Jake

    Nathanael,
    Thank you for the response. I've been trying to measure the time between edges but so far no luck. Is there an example in LabView Help that I could mimic explicitly for this range of frequencies? I've been working on programming it myself based on a block diagram image I found in this forum but again I have not gotten very far. I've attached the programs showing where I'm at right now with it. Suggestions would be greatly appreciated. 
    In my experiment, the square wave signal from the speed sensor has an amplitude of 24V and a frequency range from 0.5-2Hz. I am attempting to simulate that in the attached VI by producing a similar square wave, checking whether the value is above 5V and if it is I want to start a timer to run until the greater-than-5V-condition is met again. I'm confused on how to make the condition TRUE for only rising signals (going from 0V to above 5V). Also, I'm not certain about the timing method. I'll try putting in the Tick Count (ms) as you suggested. Again, any help would be nice.
    Regards,
    Jake
    Attachments:
    SpeedSensorSimulator.vi ‏46 KB
    MeasureTime.vi ‏11 KB

  • Use of Essbase types measures in Planning v.11.1.2.2.

    Hi. Can I use Essbase date type measures in Planning 11.1.2.2? I want to store contract start and contract end dates, possibly in a Measures dimension separate from the Accounts dimension.
    Thanks in advance,.

    Typed measures are not yet supported.
    Cheers
    John
    http://john-goodwin.blogspot.com/

  • How to use shared variables to measure analog input

    Dear All,
    I am using Real time remote system. I am using PXI-6259 card, PXI-8184RT controller and PXI-1031 Chassis.
    I want to use shared variable to measure and analog Input(voltage) from
    an analog input Channel.  I tried  attaching it  with the physical
    channel using the bind to source option but it idoes not seem to work,
    can any one give me any suggestions?
    Screen shot  of this is available.
    I tried using the Acq and graph example and deployed it to the RT but
    the Sine wave I input in the measurement channel  becomes highly
    distorted when I see it in the host.vi, there is also a Screen shot of
    this also. Is there any other option.
    What am I doing wrong? all suggestion are highly welcome.
    Thank you.
    Sincerely,
    Munir Afzal Bhatti.
    Attachments:
    SV2.jpg ‏2305 KB
    SV3.jpg ‏2305 KB

    You will have to give us the whole picture. What is your client computer; a PAC, desktop etc? What are you running on the client computer; a VI or an executable? Where are you going to deploy your library? On the host machine or the client machine?
    If I assume that you are running a VI on the client machine and are depolying the library on the host, all you have to do is to create another shared variable and bind it to the variable on the host machine. You can do this by checking the Bind to Source option when creating the variable and browsing to the network item in options. Be sure to have the library deployed on the host side before you attempt to do this otherwise you won't be able to find the variable.
    Adnan Zafar
    Certified LabVIEW Architect
    Coleman Technologies

  • I am using IMAQ vision for Measurement Studio, Ver6.0 with Measurement Studio Base Package,Ver6.0(Professional Edition).Can I work in IMAQ Vision for Measurement studio, Ver6.0 If I upgrade Measurement studio to Enterprise Edition,ver8.0.1

    I am using IMAQ vision for Measurement Studio, Ver6.0 with Measurement Studio Base Package,Ver6.0(Professional Edition).Can I work in IMAQ Vision for Measurement studio, Ver6.0 If I upgrade Measurement studio to Enterprise Edition,ver8.0.1
    Thanks
    Biswajit

    Howdy Biswajit,
    The IMAQ and Vision ActiveX controls you are using with Visual Basic 6 do not install with Measurement Studio. They are installed when you install the IMAQ software and include support for Visual Studio 6. Upgrading to Measurement Studio 8.0.1 will have no effect on your IMAQ controls since they are not related to one another. Purchasing Measurement Studio Professional or Enterprise packages allows you Visual Studio 6 support for other ActiveX components. Refer to this link for a list of ActiveX components included in those packages. 
    If you are asking about using the ActiveX controls in .NET, then take a look at this KnowledgeBase entitled Do NI-IMAQ and NI Vision Support Microsoft Visual Studio .NET?
    Hope this clarifies things!
    Best Regards,
    Jonathan N.
    National Instruments

  • Can I use virtual bench to measure/communicate with other device by I2C etc?

    Hi,
    Can I use vitrual bench to measure I2C/SPI/CAN by digital I/O or logic analyzer?
    And is it possible using digital I/O to communicate with other device by I2C etc?
    Thanks,
    Jimmy

    You might be able to get it to work (not sure how fast the DIO on the Virtual Bench can go), but for I2C, I would recommend using something that is actually meant for it, like the USB-8451 or USB-8452.
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines

  • What is the correct way to measure RPM using Visual Basic?

    I have something that works now, but I want to know if there is a better way. I am using a 6023E, I have a Hall Effect switch that goes low then high each rev when a magnet goes by. I have the signal connected to the GATE pin on counter0. I poll the card for the RPM over and over using code based closely on the example STCsinglePeriodMeasure. While this works, I'm not sure exactly what this code is doing. Do I need to call the entire thing every time? The problem is I need to reset and arm the counter each time before starting the counter, and calling everything was the only way I could get it to work. I'm looking for a way to either trim this down, or maybe there is another way altogether that is more apporpriate. Here's the code:
    iDevice% = 1
    ulGpctrNum& = ND_COUNTER_0
    ulArmed& = ND_YES
    ulTCReached& = ND_NO
    iYieldON% = 1
    iStatus% = GPCTR_Control(iDevice%, ulGpctrNum&, ND_RESET)
    iRetVal% = NIDAQErrorHandler(iStatus%, "GPCTR_Control/RESET", iIgnoreWarning%)
    iStatus% = GPCTR_Set_Application(iDevice%, ulGpctrNum&, ND_SINGLE_PERIOD_MSR)
    iRetVal% = NIDAQErrorHandler(iStatus%, "GPCTR_Set_Application", iIgnoreWarning%)
    iStatus% = GPCTR_Change_Parameter(iDevice%, ulGpctrNum&, ND_SOURCE, ND_INTERNAL_100_KHZ)
    iRetVal% = NIDAQErrorHandler(iStatus%, "GPCTR_Change_Parameter/SOURCE", iIgnoreWarning%)
    iStatus% = GPCTR_Change_Parameter(iDevice%, ulGpctrNum&, ND_GATE, ND_DEFAULT_PFI_LINE)
    iRetVal% = NIDAQErrorHandler(iStatus%, "GPCTR_Change_Parameter/GATE", iIgnoreWarning%)
    iStatus% = GPCTR_Change_Parameter(iDevice%, ulGpctrNum&, ND_INITIAL_COUNT, ulCount&)
    iRetVal% = NIDAQErrorHandler(iStatus%, "GPCTR_Change_Parameter/INITCOUNT", iIgnoreWarning%)
    iStatus% = GPCTR_Control(iDevice%, ulGpctrNum&, ND_PROGRAM)
    iRetVal% = NIDAQErrorHandler(iStatus%, "GPCTR_Control/PROGRAM", iIgnoreWarning%)
    ' Loop until 'ulGpctrNum' is no longer armed, or run window is closed.
    Do
    iStatus% = GPCTR_Watch(iDevice%, ulGpctrNum&, ND_ARMED, ulArmed&)
    DoEvents
    Loop While ((ulArmed& = ND_YES) And (iStatus% = 0)) And RunWindow.ExitStatus = "Running"
    If RunWindow.ExitStatus = "Running" Then
    'Run window wasn't closed, so read data.
    iRetVal% = NIDAQErrorHandler(iStatus%, "GPCTR_Watch/ARMED", iIgnoreWarning%)
    iStatus% = GPCTR_Watch(iDevice%, ulGpctrNum&, ND_COUNT, ulCount&)
    iRetVal% = NIDAQErrorHandler(iStatus%, "GPCTR_Watch/COUNT", iIgnoreWarning%)
    iStatus% = GPCTR_Watch(iDevice%, ulGpctrNum&, ND_TC_REACHED, ulTCReached&)
    If (ulTCReached& = ND_YES) Then
    MsgBox "Counter reached terminal count! RPM value may be incorrect"
    Else
    'ulCount is the period in microseconds, RPM = 1/val*(100000ms/s)*(60s/min)
    RPM = 6000000 / ulCount&
    ' Debug.Print RPM
    RunWindow.RPM.Text = Str(RPM)
    End If

    Finally getting around to this again. My previous post is incorrect, as the code I am using is based on the single period measure (it's right there in the code). I am having a problem with the values returned with this method. Occasionally, the card will return a lower than expected count, resulting in a very large (and incorrect) RPM value. I'm thinking this must have something to do with arming the counter at some unfortunate and coincidental point on the gate signal, resulting in a short count. It must be an unlikely event, because I get thousands of good, consistent values for every one bad one.
    To resolve this, I am thinking of going to the single buffered period measurement as suggested above. My idea is to set up a buffer with two values,
    and always take the second one (to avoid coincidental arming and short counts). I could also set it up to return more values, and the application could choose the most likely one (ie return three values, throw out the largest and smallest, etc.)
    I would rather just use the buffer in continuous mode, since the RPM varies much more slowly than the counter counts, and any snapshot of the buffer at any time would be sufficient, even in the presence of overwriting, etc. This would allow me to arm the counter once and poll it on the fly.
    My concern is that in continuous mode, the counter will be throwing a lot of errors which will interefere with the program flow. Can I just set the counter to suppress all errors when I do a buffered read? Worst case, I get a value as it is being written to by the counter, which will have some garbage value (hopefully a recognizable signature) which I can throw out in favor of the other values.
    Thanks,
    Doug

  • Using cFP-AI-110 to measure rpm:capacitance in the card?

    I am attempting to measure the rpm of a number of different augers. The augers have a magnet on them that closes a magnetic switch when the magnet passes the switch. I have built a circuit with a very small amount of power traveling through a resistor and measure the voltage across the resistor. The magnetic switches are in series with voltmeters. I have attached a picture.
    The idea was that by measuring the time between closed circuits, I could calculate the frequency of the augers. When I use multimeters, the simple circuit I built works perfectly; a closed switch will cause a meter to read (say) 9v, an open circuit reads 0. However, when I swap in the analog input card for the multimeters I encounter a problem. When the circuit is closed MAX instantly shows the proper voltage, but when it becomes open the voltage decays slowly. In other words I get a triangle shaped waveform, and since some of the augers spin rather quickly the peak to trough distance is almost non-existent.
    Does anyone know why the voltage is measured properly as soon as I close the circuit, but why it decays slowly once it is opened? This problem only occurs if I use the NI card.
    Thanks for your time
    Attachments:
    rpmcircuit.jpg ‏9 KB

    If the drawing is right, a pull up seems more reasonable to me
    You don't want floating inputs at your cFP.
     If the contact opens, the - input floats and need to be pulled to to + input to measure 0V
    Greetings from Germany
    Henrik
    LV since v3.1
    “ground” is a convenient fantasy
    '˙˙˙˙uıɐƃɐ lɐıp puɐ °06 ǝuoɥd ɹnoʎ uɹnʇ ǝsɐǝld 'ʎɹɐuıƃɐɯı sı pǝlɐıp ǝʌɐɥ noʎ ɹǝqɯnu ǝɥʇ'

  • Measuring rpm using DAQ device

    How to measure the count value determined from the encoder to rpm value?Cn anyone pls explain?

    1. Write a program to read a count every second.
    2. Find count differene between this loop and previous loop.
    3. rpm=count difference*60/pulse per round.

Maybe you are looking for

  • How to retrieve all the data from a BLOB using view-generated accessor

    I am using JDeveveloper 10g v. 10.1.3 and am storing an image in a database as a blob object and need to retrieve all of the data to get the entire image and store it in an ImageIcon. The code I have works partially in that it retrieves the correct d

  • SMBUSE files are missing

    Hi Everybody, I do not have on my installation the following files: Program: /SMBUSE/US_M07DR Format: /SMBUSE/US_MMGR3 Where or How can I get them? Thank You, Regards, Carlos

  • How to make a selection rectangle with draggable handles

    Hi, I'm trying to write a program to visualize large trees in java. The idea is to have a thumbnail view of the tree with a movable selection rectangle that can be used to focus on certain parts of the tree. Parts inside the rectangle will be display

  • Help! difficulties in using colorimeter

    I have a 24 inch Imac Recently purchased over the net from Adorama the eye-one display 2 colorimeter. The first time I used it, no difficulties, but now very frustrated. I have even uninstalled the software and re-installed hoping the problem would r

  • My app won't open

    I have an app that doesn't open since I downloaded Lion.  How can I get it to open without losing the contained files?  The app is Invisiblefile.