Pulse width

I use LabVIEW2010 for measurements pulse width (pulse duration). using DAQ PCI 6052E. That is my program!
But my result not good! help me!
my sensor is Ultrasonic sensor SRF05
Solved!
Go to Solution.
Attachments:
sensordist V9.vi ‏104 KB

Dear Anand
i using simulate signal to make sensor wworking!
i did not know about keep or not DAQ mx configure and the clear task inside the while, because this is the firsr time i use labVIEW!
i try to use your attached file! but i can not recieved accurate figures! ( may be minisecond or microsecond is good but i recieved more than 400 second)
can you help me! i did not know how to correct that!
help me!!! please!
i gave to you an image of my resulf!
thanks for your help!
Attachments:
result.jpg ‏209 KB

Similar Messages

  • In Delayed Pulse Generation vi,Problem With THE PULSE WIDTH??

    In Delayed Pulse Generation vi, I want to input a very low number for the Pulse Width while using an external timebase source. But the minimum pulse width has to be 2. Does anyone know how can I solve this problem??

    Hey 45,
    Unfortunately, there is no way to generate a pulse width smaller than 2x your external timebase.
    There is an option to create a pulse of arbitrary width of your external source if you can afford some software processing in between. What you can do is use 1 counter to measure how many source edges of your card's internal timebase (80 MHz for TIO only, 20MHz or 100kHz for TIO and STC) your external signal is. This uses pulse width measurement as the counter application. Once you know how many source edges it takes to represent your pulse, then you can use triggered pulse generation and use the internal timebase with the pulse specs set to create the exact pulse width you want (and delay) and you can use your external pulse as the trigger. Th
    is works well if your pulse is always the same width and you can measure it before hand. As an example, let's say your pulse is 20 internal timebase pulses when measured. This means you can use the pulse specs to specify a pulse width of 0.75 your pulse width by using only 15 internal timebase edges for your pulse width.
    I don't know if I was clear above or not but if you give me your exact application you are looking to achieve, I might be able to help you out. Hope that helps.
    Ron

  • Can I change the delay or pulse width on a trigered pulse on the fly in DAQmx

    In the old DAQ driver you could not change the a triggered pulse delay or pulse width on the fly of a as there was a problem in the DAQ driver or was this a hardware problem?
    Is this now possible with DAQmx , if not why not as you could do this with the old 16 bit cards in dos by updating the registers.
    This has been a major problem with NI counters timers and one would have thought that by now this problem would be fixed.We need to do this with out stopping and restarting a task.
    Any help here.
    Ta
    Colin

    Hi Colin,
    Please can you try the suggestion in this KB. hopefully it should still work with what you are doing. I can not find any information specifically on what you want to do with a triggered pulse. However this example program might give you some hints as well.
    Regards
    JamesC
    NIUK and Ireland

  • I want to create a TTL pulse. The stepper motor I'm trying to control responds to a high to low edge, when the low pulse width is greater than 0.5 microsecon​ds. What is the best way to go about creating a pulse like this?

    I'm using the NI PCI-6025E card connected to an SCB-100 wiring peripheral. I'm programming the DAQ card using LabVIEW 6.0.2 on a win95 box.
    My first attempt has yielded some surprising results.
    I created a vi with a single while loop set to true. Within that while loop is a two frame sequence. Both frames use the "Write to Digital Line.vi".
    The first frame sets the line in wire to false.
    The second frame sets the line in wire to true.
    The device channel on both frames has been set to my user defined channel nam
    e -> clock.
    clock --> sets the DIO0 channel to be digital write out.
    Using an oscilloscope and some wires I hook ground to the SCB-100's digital ground and I hook the probe to the DIO0 channel. What I see are two different pulses alternating between one another. One has a pulse width of 5ms and the other has a pulse width of about 50ms. You seem to get a grouping of one type of pulse followed by a grouping of the other type of pulse.
    Obviously this is very strange and not what I want. It is also far too slow. So I'd like to know if anyone knows how to do this properly. Remember I only need a low pulse width of 0.5 microseconds.
    Thanks,
    Any help or guidance would be much appreciated.
    Scott

    Scott,
    You don't need to use a digital line to create a TTL pulse. The PCI-6025E has two onboard general purpose counters. You can use one of these counters to create a single pulse of the desired pulse width. For an example of how to program the counters on your board, refer to LabVIEW's Search Examples>>I/O Interfaces>>Counters>>Pulse Generation>>DAQ-STC based.
    The advantage of using a counter over the digital line is that it allows you to control the timing of the pulse through hardware and not software. Thus, it is inherently faster, and the timing resolution is more accurate. The counter will count down an internal 20 MHz timebase to create the pulse delay and the pulse width.
    For more information on the hardware capabilities of your board, you can refe
    r to the User Manual online at www.ni.com/manuals.
    Hope this helps.
    Regards,
    Erin

  • External sample clock with pulse width measurement

    Dear all,
    I am using a NI 6220 board (programming with ANSI C) and would like to perform a "single pulse-width measurement" using an external gate signal and an external signal as source.
    Using the  "DAQmxCreateCIPulseWidthChan" command the program and card works only partly as intended. Namely, the external gate did work, but the card uses the internal 80 MHz time base signal instead of the external source connected to the default source pin (PFI 8).
    I tried to route another PFI pin to the default source pin using the "DAQmxConnectTerms" command but this did not help either.
    Obviously, I am missing something...
    Best, Uli
    Solved!
    Go to Solution.

    Hi Uli,
    I posted to your thread here.
    Best Regards,
    John Passiak

  • NI6602 pulse width measurement: Do I have to use an external sample clock?

    Hi
    In the .NET 4 example 'MeasPulseWidthBuf_SmplClk_Cont' it is stated in the comments that:
    An external sample clock must be used. 
    Counters do not have an internal sample clock available.  You can use
    the Gen Dig Pulse Train-Continuous example to generate a pulse train on
    another counter and connect it to the Sample Clock Source you are using
    in this example.
    I have an application running without specifying an external clock. The applications is running, but I'm not sure I can trust the recorded data. Here is the channel creation code:
                    task.CIChannels.CreatePulseWidthChannel(readTaskCounter,
                                                            "ReadPulswidthTask", 25e-9, 20e-6,
                                                            CIPulseWidthStartingEdge.Rising,
    CIPulseWidthUnits.Seconds);
    task.CIChannels.All.DataTransferMechanism = CIDataTransferMechanism.Dma;
                    task.Stream.Timeout = callbackTimeoutInMilliSeconds;
    task.Stream.Buffer.InputBufferSize = 50000;
                    task.SynchronizeCallbacks = true;
                    task.Timing.ConfigureImplicit(SampleQuantityMode.ContinuousSamples);
                    task.Control(TaskAction.Verify);
    Note that I'm not specifying any external clock.
    1) Which clock is the daq using? -It is obviously using some clock since I can collect data via this task.
    2) Do I need to change the configuration to use an external clock to achieve reliable readings - as mentioned in the 'MeasPulseWidthBuf_SmplClk_Cont' example?
    /mola
    Solved!
    Go to Solution.

    Hi mola,
    That specific example is for sample-clocked pulse width measurements.  This type of measurement is only supported on newer hardware such as X Series boards and will not run on the 6602.
    Your application that you linked uses Implicit timing, meaning that the signal itself serves as the sample clock.  That is, at the end of each pulse width that you measure, the sample is deterministically latched in.  So, you end up with a buffered array of every pulse width that is seen by the counter.
    Best Regards,
    John Passiak

  • How can I configure the CTR 1 GATE to output a pulse (10us long) and then immediatel​y take a pulse width measuremen​t?

    I'm using the BNC-2120 DAQ and LabVIEW for interfacing with an ultrasonic position sensor.  The sensor is the "PING))) ultrasonic range finder."  It measures the distance from PING))) to some object directly in front of it.  It has 3 pins (5V, ground, and a signal pin).  The 5V and ground are easily taken care of with the 5V and digital ground outputs on the DAQ.  The signal (SIG) pin works in the following way:
    1) Send a 10us, 5V pulse to SIG.  This triggers PING))).
    2) Wait 200us.  PING))) takes a distance measurement.
    3) SIG outputs a square wave with a specific pulse width. 
    The pulse width varies with the distance of the object away from PING))).  I've tried using CTR 1 OUT to generate the pulse, and then using CTR 1 GATE to measure the pulse width.  However, the measurement is stuck measuring 0V because CTR 1 OUT is on the same pin!  So PING))) tries to output a pulse, but cannot due to the fact that CTR 1 OUT forces the SIG voltage to be 0V.  So I need to use just one counter I/O line to trigger and measure.  How can I do this?

    Hi Matttastica, 
    What DAQ
    card are you using? The reason I ask is that the PFI lines on some cards can be
    used as PFI lines and digital I/O lines, while on others they can only be used
    as PFI lines. The pinouts and diagrams for our cards can be found at www.ni.com/manuals. You can accomplish
    what you are looking to do if your PFI line is a DIO lines as well.
    I would
    suggest doing two tasks, one for counter output and one for counter input.
    (Note that both these are not going to be the same line). The counter output
    will be used to do a single pulse generation, while the counter input will be
    used to read back the period. 
    This will
    work because, at first, we are going to route the line from the counter output
    to the counter input line by using a ‘DAQmx connect terminals’ (basically
    making the input line an output line for a moment). First, setup the tasks and
    the DAQmx connect, start the tasks and have the counter output do a ‘wait until
    done’ to ensure the pulse is sent. After this is done, do a DAQmx disconnect
    terminals (turning the input back from an output to an input), and then do a
    DAQmx read for your counter input (period measurement). You may look at the
    shipping examples for pulse generation and period measurement in LabVIEW (Help »
    Find Examples... » Search tab … search for examples)
    One note is
    that since this is software timed, it may not be fast enough to meet your 200us
    timing. If this ends up being the case, please look at the 6552, as it can do
    per clock cycle direction change very fast.
    David L.
    Systems Engineering
    National Instruments

  • How to generate and output 3 TTL square waveforms with different pulse widths using counters of NI 6034E

    Hello
    I just have a few questions.
     I am using the NI 6034E DAQ board in order to
    generate simultaneouly 3 different TTL digital signals, with different
    pulse width, and output these TTL signals to an external circuit that I
    am using for this application.
    The following pattern of the TTL pulses will look like this:
    01010101 01010101
    00110011 00110011
    00001111 00001111
    From
    what I understand,  I have to use the 2 counters, Ctr0 and Ctr1, to
    generate the TTL pulses that I desire, because the DIO lines are
    software timed only and I will not be able to produce a deterministic
    output period using these DIO lines.  Am I correct?    Also, do I have
    to use a separate counter to generate a separate TTL digital pulse.  I
    need 3 different TTL pulses and there are only 2 counters for this DAQ
    device.  The three generated TTL signals will be feed to an external
    circuit.  Concerning the hardware connections for my application, I
    assume that the generated TTL signals will be output from
    GPCTR0_OUT(pin 2)  for counter 0 and GPCTR1_OUT(pin 40) for counter 1
    of the NI 6034E. Is this correct?  Is there any way that these TTL
    signals can be output from three DIO lines(DIO0...2). 
    Here is some code that I plan to use in order to do this:
     #include <NIDAQmx.h>
    static TaskHandle gTaskHandle = 0;
    DAQmxCreateTask ("", &gTaskHandle);
    DAQmxCreateCOPulseChanTime (gTaskHandle, "Dev1/ctr0", "", DAQmx_Val_Seconds, DAQmx_Val_Low, 1.0, 2.0, 2.0);
    DAQmxCreateCOPulseChanTime (gTaskHandle, "Dev1/ctr1", "", DAQmx_Val_Seconds, DAQmx_Val_Low, 3.0, 4.0, 4.0);
    DAQmxCreateCOPulseChanTime (gTaskHandle, "?????", "", DAQmx_Val_Seconds, DAQmx_Val_Low, 7.0, 8.0, 8.0);
    DAQmxCfgImplicitTiming (gTaskHandle, DAQmx_Val_FiniteSamps, 5);
    DAQmxStartTask (gTaskHandle);
    DAQmxWaitUntilTaskDone(gTaskHandle)
    DAQmxErrChk DAQmxStopTask(gTaskHandle)
    DAQmxErrChk DAQmxClearTask(gTaskHandle)
    I believe this code should generate the 3 TTL square waveforms that I want for my application.
    Please provide me with some feedback.  It would greatly be appreciated.
    Thank You

     Hi,
    The NI 6034E is a multifuntion DAQ device, this means you have:
      (2) counters
      (8) DIO lines (software timed)
      (16) AI, single ended
      (0) Analog Output
     You have a couple choices here:
       1. Software timed digital output of all three signals, max 1khz loop rate, non-deterministic.
       2. Hardware timed digital output of 2 signals, max 20Mhz.
       3. Hardware timed digital output of 2 signals and software timed digital output of 1 signal.
       4. Find another NI MIO board such as the NI 6251. This board will do 10Mhz pattern generation for (8) DIO lines.
    For the hardware connection, you are correct, the output for the counters will be taken from pin 2 & pin 40.  Here's the pinout for the NI 6034E for reference:
    The output of the Counters can be routed to some of the PFI's or to the RTSI connector. You can see this in MAX
    Message Edited by Matthew W on 11-19-2007 01:24 PM
    Attachments:
    2007-11-19_131609.jpg ‏61 KB
    2007-11-19_132435.jpg ‏86 KB

  • How to generate a pulse train with different pulse width and delay?

    How to generate a triggered pulse train with different pulse width. for example, after each trigger signal, let's say 2 ms, then the counter output a pulse with pulsewidth of 1 ms, and then after 3 ms delay after the first pulse, the second pulse was generated with a pulse width of 4 ms.  Next cycle when the trigger signal comes, the same two pulses will be generated and so on. Is it possible to achieve this by using 6601 counter card? and if yes, how to achieve this? Thanks!

    Unfortunately you can not create a hardware timed pulse train with different widths on each pulse from a counter. Whilst it can be changed on the fly using software, since you require a hardware triggered signal getting the software involved will not give a huge amount of accuracy when the pulse will actually change.
    So in short you can't use your 6601 card (or a counter timer) to achieve this
    There are three possible Alternative solutions
    1 You could use a high speed digital IO device such as the (6533/34) to generate your variable signal which would require setting up the pulse train as a series of states based around the burst transmission mode where the clock would give you your specific timing.
    2 A timed analogy output (for example on a MIO card with a clock (PCI-6220 / 62xx), i.e. Not the 6704 style static analogy output cards)
    3 A high speed digital waveform card such as the (, 656x , 655x, 654x, 6534, 6533 (http://www.ni.com/modularinstruments/find_right.ht​m) ) this could then be scripted to work with your triggering and also there is a digital waveform editor which will enable you to set up the pattern you wish to generate (http://sine.ni.com/nips/cds/view/p/lang/en/nid/135​55) 
    Hope that helps
    Tim Matthews
    NI (UK)

  • Changing the pulse width of a counter on-the-fly - ?

    I'm seeing strange behavior when trying to change the pulse width of a
    counter while it is running continuously.  Using the property node
    I can set the DAQmx Channel Properties "Low
    Time" and "High Time" when the values are
    changed by the user (see attached VI).  The first change is
    ignored initially, but then applied when a second change is made, i.e.
    the changes are applied one step late.  If I read the respective
    properties the values are what is set but not what is being
    generated and seen on an o-scope.  I added a
    condition of watching the property "Ready For New Value" before applying the
    change, but that doesn't alter the behavior.  What am I missing?
    Windows XP
    LabVIEW 7.1
    DAQmx 7.4.0f0
    PCI-6251
    Thanks,
    DTL
    Attachments:
    GenDigPulseTrain-ChangingSpecs II.vi ‏104 KB

    Alan,
    Thanks for the reply.  I don't know if I explained in well in my
    previous post, but I'll try to confuse again: The issue is that the
    property node change is reflected on the hardware (pulse output) one
    change delayed.  Example: Start the VI with time value A. 
    The user sets the time to value B, the property node read for the time
    will read value B, but the output pulse (hardware) stays at value
    A.  Then the user sets the time to value C, the property node read
    is C, but the output is now B, and so on...
    I've worked with the DAQmx Write, as the example you pointed to shows,
    and it will work properly (reflect the change immediately on the
    hardware).  If one replaces the DAQmx Write to a Channel Property
    Node it will start working as I described above (change reflected one
    change delayed).  Note: A subtle additional change is that I have
    changed everything to Time (High, Low) instead of Frequency (Duty
    Cycle,  Frequency) - ?.  Note 2: DAQmx Write doesn't bring
    out all the properties - what if I have to use a property node? 
    Do I need to "double pump" the values?
    FWIW,
    Don

  • Finite pulse train with variable pulse widths

    Greetings LabVIEW developers,
    Does anyone have code that can show me how to use E-series counters to generate a finite pulse train where the individual pulse widths vary? I need to generate a series of 20 pulses with the high time for each pulse randomly varying between 50 and 1000 microseconds. The low time for each pulse needs to be constant (around 50 microseconds).
    Thanks,
    Ryan Wright

    Ryan,
    Sorry, but this isn't possible with the counter/timers. I've been wanting this capability myself for about 6 years now.
    Personally, I think it's an unfortunate "hole" in product capability. The other major data acq hw allows you to capture and later replicate a signal of interest. You can capture an analog waveform with AI and later play it back with AO. You can capture a digital pattern and later play it back with timed DIO. You can capture buffered semi-periods with a counter -- but you can't play play them back later. So for your app, you'll need to generate the variable freq using timed DIO. The new M-series boards ought to work for this, or a dedicated high-speed digital board.
    There's another product that I think is even better for timed DIO though and it's put out by one of NI's "Alliance partners" -- Viewpoint systems. Here's an example of why I like it. Let's say you need to generate 20 pulses within 60 seconds. The times of the pulses need to be precise to within 1 usec, and they have no common divisors. The NI method will require you to use an update rate of 1 MHz and you'll create a buffer of 60 MB to represent the digital pattern at every usec. The Viewpoint method needs a buffer of 40 entries. Each entry is a combination of a timestamp and a pattern to generate at that timestamp. That pattern will just stay there until the next defined timestamp. So all you do is define the digital pattern at the instants when one or more bits will change. It works analogously for digital input - if you capture with 1 usec resolution for 1 minute but there are only 20 pulses (40 digital transitions), you only capture the 40 relevant timestamps & patterns instead of a full 60 MB.
    If interested, look for the PCI-DIO64 at Viewpoint's website.
    -Kevin P.

  • Pulse width measurement with FieldPoint CTR-502

    I would like to measure the pulse width of a signal (ranging from 10 ms to
    400 ms out of a signal with period width of about 1 second). I would like to
    use a fieldpoint counter module FP-CTR-502. I could find examples on how to
    measure frequency but I did not know how to alter it in order to obtain the
    pulse width.
    Thanks,
    Martien

    To measure pulse width of a fixed-period signal, you only need to use one counter, so the configuration and program would be different than the frequency measurement example. Set the count source for counter 0 to "32kHz Reference" and the gate source (and wire your signal) to "Gate Input 0." You'll also need to create a control channel to reset counter 0 (as described in the frequency example).
    Your LabVIEW program should run as follows:
    - When Gate Input 0 becomes true, do nothing
    - When Gate Input 0 becomes false again, read then reset counter 0
    - repeat
    You can use FP Advise to wait for the gate to change (just like the frequency example).
    Once you have the number of counts, you can divide that by the frequency (32 kHz) to calculate the "on tim
    e" (pulse width) of your signal.
    Regards,
    Michael Shasteen
    Applications Engineering
    National Instruments
    www.ni.com/ask
    1-866-ASK-MY-NI

  • Samples Not Acquired on NI 660x or NI 6624 Devices When using pulse width, semi-period or two-edge separation buffered measurements with the NI 660x and NI 6624 on counters 0 and 1, some samples may not be acquired under certain circumstances.

    In the DAQmx 9.4 Readme the following is stated:
    Samples Not Acquired on NI 660x or NI 6624 Devices When using pulse width, semi-period or two-edge separation buffered measurements with the NI 660x and NI 6624 on counters 0 and 1, some samples may not be acquired under certain circumstances.
    Could anyone elaborate on this? I am particularly interested in knowing under what circumstances this problem arises for the 6602 PCI devices.
    How should I understand 'NI 660x and NI 6624 on counters 0 and 1'. Is it only a problem on counter 0 and 1 for the 660x or does this only apply for the 6624 devices.
    /mola 

    Are there any NI Product Support Engineers out there who has an answer to this question and who are willing to share it with me?

  • How can I make the marker event pulse width longer in NI-FGEN?

    I want to generate a marker event on PF0 line using NI-FGEN.I can set the marker event pulse width but when I was trying to make the pulse width units as 65 I was getting an  error-1074115931. 
    How can I make the marker event pulse width longer without using script as I am using PXI-5412 which is not supporting Script.
    Can anyone help me out in doing the same?

    Unforunately, as you mentioned, the PXI-5412 does not support scripting mode. This will limit you to 1 marker using sequence mode. However, the PXI-5421 and PXI-5422 would allow the functionality. 
    As far as making the pulse width longer, and as the KnowledgeBase Article that you linked to discusses, I don't think it will be possible to create a marker as long as 1us - 10ms using just the Marker properties and without using scripting. You can still try to do this with property nodes and see if you can get a usable result. Start with an example such as "Fgen Arb Waveform Marker" and use the "Marker Position" value to set the start time (you would want 0 here it looks like), and then "Marker Event Pulse Width Value" to change the pulse length, but again I am afraid you will probably reach the maximum of 640 ns here. If you're not able to get this going with the property node, you will need either a FGEN card that supports scripting or another card that does Digital I/O to accomplish this. 
    Thanks!
    Stephanie S.
    Application Engineer
    National Instruments

  • Minimum pulse width needed for gating the counter

    Hi,
         I have TTL pulses of 20 nanosecond width coming out from the two detectors at random times. I want to count the number of coincidence pulses.I am trying this with NI PCI 6259 M series card, by giving one signal to the gate of the counter and other as a source of the counter (Single Point (On-Demand) Edge Counting with Pause Trigger). When both source and gate are high then it should give the coincidence count.Can anyone suggest  
    1) Whether this is possible to gate the counter with 20 nanosecond width pulse?
    2) If above thing is possible is this the right way for looking coincidence counts?
    Any help regarding this is highly appreciated. 
                                                                                                                                                                                                                                             Regards
                                                                                                                                                                                                                                              surya
    Research student

    I'm sorry I could figure out what was the problem.
    And I also find the minimum output pulse width on the catalog (12.5nsec).
    Thanks,
    Kaoru

  • Reading a PWM and determining pulse width using a digital input pin on a NI 9425 DAQ

    Hello!
    I have been experimenting with LabVIEW for about a week now and have run into a brick wall.  I have found a fairly effective way of reading a PWM signal through an analog input and determining the pulse width.  However, it is becoming necessary for this project to do this same thing using a digital input.  I've been playing with this for about a day now and am not making much headway.
    For reference, I will be using a 9524 device
    Any ideas?

    Also, if it is helpful at all, I've attached two vi's.  One, functions just as I need it to - but it doesn't involve data aquisition.  The second should be similar to the first, but is non functional - I keep getting an error that my amplitude is zero.
    Any thoughts?
    Attachments:
    DigitalEdgeDetectionKnown.vi ‏47 KB
    DigitalEdgeDetectionRead.vi ‏148 KB

Maybe you are looking for

  • Syndicate only when few fields change

    Hi Gurus, There are 10 fields in the Main table. And the requirement is such that the auto syndication should happen only when Field 1 or Field 4 value changes (like change pointer triggering). I know there is an option while creating a syndication m

  • Uninstall older versions of Flash Player?

    I just installed the latest update for Flash Player...can I now uninstall older versions?

  • Configuration of SUM

    Hello, I am trying to configure SUM on rev.20.. I already solved all possible issues with certificates and it seems that Studio to Database as well as Database to Hostagent connection is working but I am getting following error: Verification of manif

  • How to find routers with multiple bgp neighbors using baseline templates?

    Running LMS 4.1 5k on Windows We have around 400 routers on a MPLS network. Only few of these have more than one BGP neighbor. We need to enable some bgp traps so we know when a bgp neighbor is down. How would I write a baseline template to check if

  • Vbscript access database

    Dear, i have issue inserting data in access database below is error would you please assist. [email protected]