Laser pulse counter in FPGA

Dear guys,
i have a laser pulses that i wont to measure the time between the start and end pulse via FPGA.
i am not familiar with FPGA but because of the cost i am forced to use it. my fpga D70.
so if you guys got any info answer will be so greatful 

sam432,
Do you have an FPGA from NI? What is the model number? D70 doesn't sound like any NI FPGA model numbers. You will need to have an NI FPGA if you want to use the LabVIEW FPGA Module.
If you're asking in general how this is done, typically you would use a counter to determine the period of the square wave. More information about your laser and what NI hardware you might be using would be helpful.
Robert B
Applications Engineer
National Instruments

Similar Messages

  • Pulse counting on EtherCAT

    How does one read the data from a digital pulse counter card (9411) on an EtherCAT chassis (9144) FPGA from real-time on a PXI system? As far as I can tell, EtherCAT FGPA does not support DMA FIFO or reading front panel controls.

    The 9144 chassis does not support specialty digital either so you need to implement the counter on FPGA and transfer the data with User defined variables from FPGA to RT. Luckily that's done in an example already shipping with the driver.
    DirkW

  • Read no. of pulse count with fixed time interval

    Hi,
    I am try to read no of pulse count ( Pulse period = 500ms, On time = 100msec and Off time = 400msec). Between pulses there is a fixed time interval of 2seconds. I am using NI USB DAQ 6341. Can anybody help me regarding this? 

    Thanks for replying. I have gone through  that example, the given example are only increment count when pulese are detected.
    In my case, i want to count the no. of pulses between the time interval of 2sec. e.g. Suppose my device generate 5 no. of pulses and after every 5 pulses their is 2sec time interval, here i need to read only 5 pulses not the continuous count. And no. of pulses are generated by device can be vary but the time interval between those pulses are fixed. Could you give me suggession regarding this?

  • Servo motor encoder pulses/counter data erroneous

    First off, I am very new to using labview.  I am trying to complete a project a former employee was working on.
    For a quick background on what I am working with, I am using a NI DAQCard-6036E connected to a SC-2345.  The SC-2345 is then connected to a load sensor, Omron R88D servo driver, and an omron servo motor.  The servo motor has a incremental encoder with a resolution of around 2048 pulses per revolution.  My labview program includes a counter that records the data from the encoder on the servo motor.  I have been able to get accurate data when testing through the measurement and automation program by manually turning the motor.  Also when running through the specific DAQ assistant I am using for my counter, I am getting correct readings when manually turning motor.  Once I run my complete program, instead of getting 2048 pulses per revolution, I am getting between 34000-36000 pulses per revolution.  The most logical assumption is that I am getting vibration in the motor itself or some sort of noise is interfering with my signal.  I first attempted to change any possible settings through the omron servo driver that might reduce any vibration in the motor.  I attempting changing the rigidity settings, turning on and off the auto-tuning function, and a few other settings specified by the user manual that might cause vibration.  If I turn the rigidity settings as low as possible, I am able to get around 2000 pulses per revolution, but the data is very sporadic. Also, my equipment needs to be very rigid, and with the lowest rigidity setting for the servo driver, I am able to almost stop the motor with minimal force.  My equipment needs to be able to travel at a near constant speed with fluctuations of up to 200 N of force.  Any suggestions on which direction I should go in finding a countermeasure? 
    Thanks
    Solved!
    Go to Solution.

    The model number of the servo motor is R88M-W10030L.  The servo motor rotates at a constant speed.  The program is designed to drive the servo motor connected to a ball screw in one direction.  Once the load sensor reaches a desired load, it will reverse at a constant speed until no load is on the sensor. Throughout, it records load vs. displacement.   I have found a few things that will alter the pulses counts.  If you apply resistive pressure on the servo motor while it is rotating, the pulse output will vary.  Also when you apply pressure to the casing of the servo motor itself, the pulses will often jump around. I was almost certain my false pulses were caused by vibration.  After have no success adjusting settings to reduce vibration(according to the user manual), I ran the program while moving around several wires to see if any were loose, etc... After applying force to the power lines and encoder cable, the program ran several times with an average of 2000 pulses per revolution and would actually subract pulses while going in reverse(what I want it to do); Although the average was around 2000 pulses per revoltion, i saw positive and negative jumps in pulse counts while traveling forward at constant speed.  Today I re-wired the equipment, seperating as many wires as possible.  After the re-wire, the equipment/program is back to sending 34000+ pulses per revolution, and does not subract pulses while reversing.  I have read the 'Using Quadrature Encoders with E Series DAQ Boards' article.  Referring to the article, I am running similar to "method 1".  I am already using a signal conditioning box, but have the counter data run directly through. Do you believe running the signals through a SCC-CTR01 might solve the problems? 

  • How can I create a resettable 50-Pulse Counter?

    Hello, 
    I am trying to make a ressetable 50-pulses counting.  My counter is working fine and I can detect when it reads 50, but I can't reset the counter to 0.   
    Thanks! 
    Attachments:
    ressetable counter.jpg ‏143 KB

    When you determine the count = 50 you need to feed a 0 into the shift register rather than the current value wire going in.  Another selector function would work for that.

  • Compare two pulse counts

    Hello,
    I'm trying to compare two simultaneous pulse counts using a cDAQ-9172 chassis, a 9401 card, and LabVIEW 8.2. What I want to do is set up a single output pulse that lasts for, say, 1000 incoming pulses on ctr0, and then use that single output pulse as a gate on ctr1 to count the input pulses that it sees during those 1000 pulses on ctr0. In other words, I want to synchronize the two counters, and as soon as ctr0 reaches 1000 pulses, they should both stop so I can compare the two counts. The issue is slightly complicated by the fact that both counter inputs are very noisy and require a pulse width filter in order to be read properly.
    I more or less understand what needs to happen conceptually, but I'm at a loss for how to make it happen. A simple walkthrough would help enormously. Alternatively, if there's a better way to accomplish this, that would be helpful as well.
    Thanks.

    Thanks for the advice. I set up a program (attached) that tries to implement basically what you suggest, but there are still problems. The main issue is that it gives me an error -200141 message telling me to change the data transfer mechanism to DMA. When I set up a channel property node to do this, it tells me that DMA is not available.
    The other concern I have involves the pulse width filter on the counter output task. The 1000 pulse signal is extremely noisy, and without any filtering, the noise will increase the frequency by a significant amount. I've set up the filters as you can see in the program, but I have no idea whether I've done this properly.
    Any further help you could offer would be greatly appreciated.
    Attachments:
    even more gating.vi ‏39 KB

  • Pulse count fieldpoint

    Hi! I need to write a VI with a pulse counter employing fieldpoint. Here's my problem: I have an energy meter with pulse output. I can set pulse frequency, pulse lenght and number of pulses for kWh. I have to read the signal from that instrument but I don't really understand how. I mean, I do not have to measure the frequency of the pulses 'cos I already set it, I'd rather read the signal from the meter in a specified period of time and count the number of pulses in that time. How can I do that?
    I can both connect the meter to a cFP AI-110 or cFP CTR500. There are mainly two things I don't understand:
    -how can I count the pulses in, let's say, 30 s?
    -how can I define the reset condition?
    Thanks!
    Valeria

    Valeria,
    CTR500 is the best solution.  Have you verified that the pulses from the energy meter are compatible with CTR500 inputs?  If so, the two counter method will give you the best results.  The first counter creates a window of known width which is then used to enable another counter that counts the pulses.  There is an example .vi that ships with LV called "Frequency Measurement.vi" that demonstrates the 2 counter method.  Instead of calculating frequency you will need to calculate energy.

  • Pulse Counter

    Hello,
    I need a idea in how to do a Pulse Counter.
    I have to use a Pulse Counter, to measure wind speed.
    Determining how many pulses I have in a determined interval, I will
    convert this to wind speed (mph).
    I already have the sensor for this, but have no idea on how to
    implement in LabView. Can you help me with ideas or examples?
    Many Thanks.

    Check out the example, Count Digital Events.vi. Also just do a search in the examples for count.
    Mike...
    Certified Professional Instructor
    Certified LabVIEW Architect
    LabVIEW Champion
    "... after all, He's not a tame lion..."
    Be thinking ahead and mark your dance card for NI Week 2015 now: TS 6139 - Object Oriented First Steps

  • Analogue Signal Pulse Count

    I am using CDAQ with a NI9229 4 Channel analgoue input card. 
    I have a sensor that outputs an analogue 5v square wave signal. The pulses are triggered from eithe a north or south pole of a magnet. I have  an aluminium wheel with 30 magnets, all magnets are in opposition to each other. when the wheel is rotated the output is a square wave.
    My magnet wheel is rotating at 182° per second. Over 360 degrees there is 30 magnets. Thus making the sensor switch 30 times.
    The time to revolve the wheel one revolution is 1.978 seconds.
    I have set up the NI9229 to the following
    - sampling rate is set to 25kS/s So to record the data for one revolution it works out as 49450 bits.
    - Have set the trigger levels for recording a hi or lo pulse to 2.7 and 0.7 volts.
    50000 samples would be two seconds worth of data which would be more than 360° of rotation of the magnet wheel.
    The problem I am having is that my pulse count changes between 30 and 31. But as I am only recording 1 revolution of data there is physically only 30 switches. Do you know why I am getting a change of 30 and 31.
    Attachments:
    pulse count 2.PNG ‏20 KB
    pulse count.PNG ‏19 KB
    front panel.PNG ‏83 KB

    I think I know what the problem is now but don’t know a way around it.
    I have attached two screen shots. One shows that the rising edges are counted as 15 and the falling as 16 the other shows both are 15. This is due to where it starts to take data I believe.
    For detecting the rising or falling edge I compare the data to 4.0 or 0.5v If its below 0.5 then sends a hi signal and counts 1, if its above 4.0 it sends a hi signal and counts1.
    But depending on when it starts taking data the signal is already a falling or rising edge. Comparing one bit of data on a rising  edge to see if its below 0.5 will send a hi as it hasn’t started to rise as shown in the first picture.
    Is there a better way to count pulses
    Attachments:
    1.PNG ‏61 KB
    2.PNG ‏64 KB

  • Pulse Counting Problem CTR-500

    I am using a couple CTR-500 on a compact fieldpoint setup to measure pulses from 2 energy (BTU) meters, 3 diaphragm gas meters, 2 liquid flow meters and 2 Watt-hour electrical meters.  I seem to have a problem with my pulse counts accelerating upon start up of the program (up to 1000 pulses/15 minutes <- which is unrealistic for the hardware installed and then falling to 5-10 pulses/15minutes <-reasonable value).  The pulse count does not correlate with the manual meter readings I have taken either, with the exception of the Watthour meters.  I am unsure if it is my program, wiring, or peripheral equipment at this point. 
    Has anyone seen a problem like this before?  I have included a couple graphs showing the raw pulse count (saved every 15 minutes) and the change in pulse count every 15 minutes.
    Solved!
    Go to Solution.
    Attachments:
    Pulse Counting Run Away.pdf ‏128 KB

    Here is an example vi of how I am reading the pulses and some data processing I am doing with the signal.  I have built in a totalised pulse counter to compensate for the maximum of 65535 pulses that can be counted by the module - so I do not miss pulse counts on reset. 
    Attachments:
    Example code for counting.pdf ‏60 KB

  • CDAQ module for high speed pulse counting

    I need to know a USB module which can be used for pulse counting. The pulses are generated from an encoder attached with an stepper motor. It generates 15 pulses per step.Pulse amplitude is 0 to 5V. I am using a compact DAQ system (ni 9178).

    The counters are on the cDAQ chassis backplane (there are 4 of them on the 9178).  So, in order to use an external signal with the counters you would need a way to route the signal to the backplane.  Your available options are:
    1.  Any digital I/O module with 8 or less lines on it (some modules are input-only or output-only--input modules can be used for counter input tasks only, output modules can be used for counter output tasks only).  Modules with over 8 lines transfer the data serially to the chassis backplane and so do not support routing signals through to the counters.
    2.  The 2 PFI lines on the 9178 (I should have mentioned this earlier, this might be a good option for you to route your encoder pulses without having to purchase an additional module if you only need 2 inputs--that is, no Z index signal).  The bandwidth on the chassis PFI lines is lower than that of the 9401 and 9402, I believe the chassis PFI lines should take signals up to ~1 MHz.
    3.  An analog module with triggering capabilities (at this time only the 9205 and 9206) can route a digital signal (the 9205 and 9206 have a PFI line) or an "analog comparison event" (see my post here) to the counter terminals.
    In case 1 above, you configure this by selecting the counter using the module's name (e.g. "cDAQ1Mod2/ctr0").  Default input terminals will be used (check the device pinouts for your module in Measurement and Automation Explorer) or you can select which terminals to use for your inputs using a DAQmx channel property node.
    In cases 2 and 3, you would need to select the counter as the internal backplane counter (e.g. "cDAQ1/_ctr0").  You will need to select which terminal your signal is coming from (since the internal backplane counter does not have default terminals.  This same method can be used to count internal signals (e.g. sample clocks, counter outputs, etc.) without having to use any of the 3 routing options mentioned above.
    Best Regards,
    John Passiak

  • Cannot Find Pulse Width Modulation(FPGA, Use in SCTL)

    Hello All,
    Can someone tell me where I can find Pulse Width Modulation (FPGA, Use in SCTL).vi? I couldn't find it in LabVIEW Example Finder.
    Thanks
    Message Edited by John Edwards on 02-01-2009 09:30 PM
    Solved!
    Go to Solution.

    Here it is...
    Attachments:
    Pulse Width Modulation (FPGA, Use in SCTL).vi ‏43 KB

  • Pulse count with a 9401 modules (cDAQ-9172 system)

    I'm trying to do a pulse counting by a 9401 module in a cDAQ-9172 system. I have three 9401 modules . One of them is working as a trigger (start-stop count) and the other two  (in slot 5 and 6) are for counting pulses from the 2 meters. It looks like a simple task but my problem is that I am counting always  3 to up to15 pulses less than my reference counter. everything points out to a task in my program is causing a delay. The question is where or what is causing such a wrong counting
    Attachments:
    COOMET Comparison DN80 short.vi ‏737 KB

    First for triggering with cdaq you must use the 9405 or 9406 (for analog triggering or 9401 for digital triggering) module in slot 5 and 6 - look in following link. Signals are routed with the chassis PFI Lines and only available at Slot 5 and 6.
    http://digital.ni.com/public.nsf/allkb/851828B06A20E01B862571DA0005591A?OpenDocument
    http://digital.ni.com/public.nsf/websearch/EFD808DC883F095186257170005A634D?OpenDocument
    Then the other moduls in other slots can be configured with these pins for triggering. When you wants triggering on both edges you can look in following link:
    http://forums.ni.com/ni/board/message?board.id=170&message.id=248456&requireLogin=False
     Best Regards

  • Pulse Counter using LM3S8962

    Hello,
    I need the display and control this following points on EKK-LM3S8962 ARM board
    Generate the pulse signal.(as shown  in excel file)
    After generating the pulse, 2 pulse is missing after 34.Then again start from 0-34(2  missing) as it continues.(as shown  in excel file).
    At every 34 pulse I need to synchronize the cam single (as shown  in excel file).
    At very synchronize I need to count and display on front panel.
    Please help me out as I am new to LabVIEW.
    Attachments:
    CrankSignals_Ref.xls ‏183 KB

    I also have "NI USB-6341, X Series DAQ (16 AI, 24 DIO, 2 AO)," but I am trying to make a pulse counter for analog signal
    I tried to use the "get waveform component" and can't get it to work. There is an error (regarless if I use analog or digital version of the get waveform component function). I am using the "simulate signal" function since I haven't gotten the circuit built yet.
    The attached vi is far as I can go with what I know. Trying to learn more...
    I really appreciate your help so far. At first, I thought creating a pulse counter for analog signal should be easy in labview...
    Any extra guide will be appreciated
    Attachments:
    Pulse counter.jpg ‏79 KB

  • Pulse counting with voltage input

    Im using compact field points  analog I/O (AI-112) to measure the frequnecy of an anamometer.
    Basically the sensor is just a switch that open/closes at a frequency which gives 1 pulse per second (1Hz = 1.25MPH).
    I know the pulse counter I/O would be best for this, but I assume labview with realtime should be able
    to handle this measurment. Im having trouble finding the right VI's to do the job. Any suggestions for
    possible ways to count the pulses/ measure the frequncy would be appreciated.

    Hello cfpboy,
    I have a question about your signal first.  How long does your signal remain changed when a pulse occurs?  Does the signal stay "high" for 1 full second and then go "low" or does it pulse "high" once a second and then immediately return to "low".  If it stays "high", then you could simply poll the input in a LabVIEW Loop set to occur once a second.  You could then store the value in a shift register, and compare the current value to the previous value.  If they are different, then the state has changed, and you could then increment your software counter.  As you are using an analog input module, you will want to convert your voltage level to a "digital state" by checking if it is above or below a specified level.
    One drawback of this approach is long term phase shifting as well as the possibility of reading while in a transition state.  This could potentially throw off your measurements.  As you are using LabVIEW Real Time, you can slightly mitigate some of these problems by utilizing a LabVIEW Timed Loop instead of a normal Loop.
    Thanks,
    Jonathan C
    Staff Application Engineering Specialist | CTD | CLA
    National Instruments

Maybe you are looking for

  • Removing white space after Spry Menu Bar...

    I having a bit of a problem trying to remove a little white space after my Spry Menu bar, when I set it to 8.6em theres a little white space, when I set the width to 9.7 it goes too far, I changed it to 137 pixels, however in Firefox and IE, it messe

  • Change a white ipad to a black ipad

    i am not sure if this is the right place to ask this question. so here it is, i just got a white new ipad as a gift from my uncle. i havn't open it. can i just walk in to apple retail store and replace with a black one? (and there is no way to find t

  • Registering events for own GUI controls

    Hi, I refer to the blog <a href="/people/thomas.jung3/blog/2004/09/01/using-net-windows-controls-in-the-abap-control-framework:///people/thomas.jung3/blog/2004/09/01/using-net-windows-controls-in-the-abap-control-framework In the mean time I was succ

  • System prefference problems

    ok so not to long ago i had a problem changing my screen saver, it was itunes album art, and when i clikc on desktop & screensaver, then clicked screen saver it would automatically kick me out and say that it quit unexpectidly. and it would not let m

  • HT5557 How to release a book in different languages on iBooks

    I would like to release a book in several languages like German, French, Japanese and English. So that each country can acces the book in their respective language. How does one go about doing this. Do have to realease a different versions via iTunes