Measure ramp time from a waveform

Hello,
  I'm relatively new to LabVIEW and need help with (what I think is) a pretty basic operation.
  I have a 3rd party DAQ board from Measurement Computing on which I'm reading a single analog channel. My task is to measure the ramping time from off to full scale (~6V) and make sure that it accomplishes this within 75 milliseconds. That's it.
  I have looked at the sample VIs that came with the DAQ board, and found one which graphs the channel and produces a waveform - 1 Channel, N samples. I tried using Get Waveform Components to break out T0 and Y, but not sure where to go from there. The Y component seems to be an array, but the T0 is not.
  As far as starting the waveform capture, I am programmatically in control of when the "switch" is turned on that powers the device, so I should be able to know when my true T0 is.
Thanks for your help.

An update - I still have no workable solution to this problem. I have talked to NI; I've tried using "Transition Measurements.vi". My current hardware mockup does NOT allow me to know when the voltage ramp is starting, although in the future I will have program control over that. For now, I was just trying to get a working VI that will do the ramp measurement. The other gotcha in this is that when power is applied, there's a short spike, then the voltage falls off temporarily, then the ramp up occurs.
I've attached screenshots of both the whole waveform, and a closeup of the portion I'm interested in measuring. So I do have a valid waveform (DBL). I just can't figure out how to use Transition Measurements properly (or any other method) to get a valid result.
Can anyone give me some help on this?
Thank you.
Attachments:
total waveform annotated.jpg ‏51 KB
waveform to measure annoted.jpg ‏57 KB

Similar Messages

  • I want to read the settings (time/div,​Volt/div,d​elay,etc..​.)from a waveform that is saved into a memory register of a FLUKE PM3394A Combiscope​.

    Dear all,
    I am writing a labview application for a Fluke PM3394A Combiscope. I want to read the settings (time/div,Volt/div,delay,etc...)from a waveform that is saved into a memory register. Can somebody help me on this? The Labview driver library I found on NI.com doesn't support this.
    Greetings
    Davy

    Unless you've used some sort of "auto-setup" for the scope, all of the settings are what your program commands the scope to use. Once you've acquired a waveform, typically all that is contained is the raw data. If you need the settings later in the program, you'll have to save them by putting them into a shift register/local variable/plain old wire. If you do use an "auto-setup" (I don't remember if the scope has this feature) and the driver has no query functions, then you'll probably have to write your own. These are usually pretty simple to do and are usually similar to the settings commands with the addition of a "?" at the end. For example, if the command to set coupling of channel 1 is ":INP 1:COU AC", then to query it the command might be "INP 1:COU?"
    and you would do a read and get "AC". The instrument programming manual should explain all of the command/query syntax.

  • Saving array data from a waveform chart

    I am using a CRIO 9004 and a 9237 bridge module to measure some strains from strain gauges. I've got one timed loop that reads the DMA FIFO and puts the arrays of values (16 data points, 4 per channel) into a queue. In the consumer timed  loop a For loop scales the binary data, auto indexes it into arrays, then the arrays are merged into a 2D array for the four channels  displayed on a waveform chart . Everytime the consumer loop runs it indexes 4 data points (per channel) yet the waveform chart plots them in a consecutive manner and doesn't overwrite the previous four. If I convert the arrays to waveform arrays I don't see anything on the waveform chart.
    If I pass the 2D array of data to a array indicator inside or outside the consumer loop I get only 16 data points. I want to save the information that appears on the waveform chart  after the consumer loop but because I'm not using waveform data type I can't use the write waveforms to file vi. The waveform chart history buffer has been set to 195360.
    Idealy we will run the four channels for 120 seconds charting the data and saving the data. The minimum data rate is 1613kS/s (403 per channel) The data can be saved after the loops have finished gathering and processing or while they are running. I noticed when I tried to write to TDMS it slowed the consumer down. Same thing if I use a shift register with the volume of data.
    I suspect I'm not sending data to the chart in the correct manner ( usualy takes two attempts to "clear chart" using shortcut menu).  I'm not too familiar with timed loops /producer consumer loops  and just tried to put something together based on examples.
    I've attached my host vi and front panel screenshot.

    Hope they appear attached this time.
    Attachments:
    Basic DMA (Host).vi ‏444 KB
    screenshot2.jpg ‏113 KB

  • I want to measure te time between the peaks

    I need to measure the time between each peaks (QRS peak) in an ECG waveform continuously and plot on the chart.
    Can u please help me with this.

    Hello kok,
    Here is an example.  I am using a sine wave instead but it will still work.  Just put in the threshold to be above the itnermediate peaks that you want to ignore but below the peaks you want to get.  The VI will then tell you what location inside of the array the peak occured.  You can subtract each location from each other to find how many elements pass between peaks.  You can then multiply the number of elements between peaks by the amount of time between each sample.  I hope this helps.
    Steven T.
    Attachments:
    rrmeter.vi ‏16 KB

  • Export all data from my waveform chart to excel

    Hello, my name is Chris. I am just learning to use LabView. Everything I have learned so far is through these boards. Which is a valuable tool for someone learning. The VI I am working on is to monitor current from a unit we are testing. I am able to monitor current and have it running in what I believe to be real time. As I said, this is the first one I have made. I am trying to export all the data from my Waveform Chart to a report. Everytime I try I get one instance and it measures 0. I don't know what I am doing wrong. Any help would be appreciated. Also, if you have any suggestions on the all around working of this I would appreciate that as well. Thank you in advance.
    Attachments:
    Lp Current Test.vi ‏83 KB

    Hey Christophrt,
    If you are trying to display the microseconds for a waveform chart in LabVIEW here is how you can do it:
    Go to the Chart Properties>Display Format>X-Axis>Advanced editing mode>enter:
    %<%I:%M:%S%6u>T  as the format string and you will have the hours: minutes: and seconds to the microseconds. 
    If you are trying to display the exported data in microseconds in Excel, you will probably have to do some formatting changes in Excel to have that work.
    Regards,
    Tommy G.
    Applications Engineer
    National Instruments

  • Tachometer time synchronized with waveform time

    We ran into an issue trying to record both the speed/time from the OAT
    Tachometer.vi
    and waveform data from our other channels.  The problem is that the
    time shown in the waveform data is different from that in the tach
    signal.  I need to make sure my tach signal rpm data is synchronized
    with the data I recorded from my other channels (pressure, temp, etc). 
    I am recording data to two different excel files using two
    different Write Labview Measurement.vis.  I have the "enable" switches
    tied together.  I record the data to excel from my .dat files.  Since
    the tachometer signal does not send "0 rpm" there is nothing in the
    excel file until I have a speed profile.  So I wait to record until I
    have a clear speed profile around 120 rpm and then record data.  Once
    in the excel files, I subtract the offset from the tachometer signal
    (Excel file #1) and the other waveform data (Excel file #2) so that
    both start at time zero.  I get about 0.5s extra recorded samples from
    #2.  Why do #1 and #2 not match?  Is there any way I can ensure that
    the data I am taking is occurring at the same time and one set does not
    lag the other? 
    Thanks.

    Hi all
    I also had a similar problem. In my VI, I want to acquire a waveform, starting from the moment when the speed goes over a threshold.
    I have a loop that acquires a every iteration 1.5s of waveform and computes speed profile, then tries to cut the waveform when the speed exceeds the threshold value.
    Unluckily, watching the speed profile generated by the VI "OAT Analog Tacho Process" (whose reset connector is set to FALSE) I can see that the time values are not in phase with the acquisition timelenght.
    To give an example, at the 4th iteration of the loop, where I would expect values between 4.5s and 6s, usually the speed profile has a timelenght ranging from a bit more than 3s to 4.7s, which means, it is not a problem due to the loss of a cycle for initialization issues, otherwise its points would stay inside the range 3s-4.5s
    I thought it could be a problem of buffer underflow, but even increasing the buffer lenght doesn't solve the problem.
    May it be an effect of the interpolation in the computation of speed profile? Or do I lose some samples during the loop? (I close the acquisition channel only at the end of the VI, in every loop I just call the read VI)
    Thanks in advance 

  • LabVIEW/SignalExpress: How can I automate measuring the time between two pulses?

    Hi everyone, bit of a newbie here so please bear with me.  
    I'm a student at a university conducting a muon decay experiment with an oscilloscope connected to some photomultipliers.  To summarize, if a muon enters the detector it will create a very small width pulse (a few ns).  Within a period of 10µs it may decay, creating a second pulse.  The oscilloscope triggers on the main pulse 5-15 times per second, and a decay event happens roughly 1-2 times per minute.  I am trying to collect 10 hours of data (roughly 1500-2000 decay events) and measure the time it takes for each decay.
    I've been able to set recording conditions in SignalExpress that starts recording on the first pulse and stops recording on the last.  The Tektronix TDS 1012 oscilloscope however feeds 2500 points of data from this snapshot into a text file (for use in excel or other software).  Even if I perfectly collected the data, I would have 100,000+ data points and it would be too much to handle.  I don't know how (or if it's possible) to reduce the sample size.
    To conclude, using Labview or SignalExpress, I would like to be able to have the software
    1.  Differentiate between the single pulse detections and double pulse decay events
    2.  Record only when two pulses appear on the oscilloscope
    3.  Measure the time between these two pulses and ONLY that to minimize the amount of data recorded.
    Any help would be GREATLY appreciated, thanks!

    Hi wdavis8,
    I am not that familiar with Tektronix, but there should be a place in the dialog that you go through when you create the action step to acquire date to specify a sampling rate. That would allow you to reduce the number of data points you are seeing, but may reduce the quality of the data.
    If it’s just a matter of that much data being hard to dig through when you have that many points, you could do some analysis on the data after the fact, and then create a new file with only the data you want to look at. For example, you could identify the peaks in the data, and based on the distance between them or the difference in magnitude, selectively write data to a new file.  
    Here is some information about peak detection in LabVIEW:
    http://www.ni.com/white-paper/3770/en/
    You could also do some downsampling on the data to get fewer data points:
    https://decibel.ni.com/content/docs/DOC-23952
    https://decibel.ni.com/content/docs/DOC-28976
    Those are just a few quick ideas. 
    Kelsey J
    Applications Engineer

  • How to measure the time a pulse is high for?

    I am using Pulse measure.vi to measure the output of a comparator. My comparator output feeds to an LED. The duty cycle is 50% so the LED just flashes on and off. I want to measure the time the output is high ('ON time') and I have been getting this by just multiplying the pulse width measure by the no. of pulses but I want to modify it to measure the 'ON time' of random signals with different duty cycles...
    The aim is that I am taking in a signal and need the LED to turn on when the signal 'ON time' reaches a certain specified time.
    But before I continue with the LED I am wondering how to add up the time the signal is high for?

    Hi PinkLady4218,
    You should be able to use one of the shipping examples to do what you need, please open LabVIEW and go to Help >> Find Examples.
    From the Example Finder please go to Hardware Input and Output >> DAQmx >> Counter Measurements >> Period or Pulse Width >> Meas Buffered Semi-Period-Continuous.vi
    You will then need to deinterleave the output array as it will show high time then low time then high time then ...
    You will need to confirm the order these values appear and then you can use a function from the arrays palette and use the function "Decimate 1D Array"
    Regards
    JamesC
    NIUK and Ireland
    It only takes a second to rate an answer

  • How can I build a table with the time values of a timer from a while loop

    Hi:
    I have a question concerning building a table:
    Every 100ms I read a value from a sensor (while loop with a timer). I would like to build a table with the actual time and the concerning value. For example:
    0msec         1V
    100msec     2V
    200msec     3V
    300msec     4V
    etc.
    If I use the Express VI for building a table, I always get the date and time, but I don't need the date and the time is in the following format: HH:MMS, which is nonsensical for me as I can't differentiate within msec. Can I change the format anywhere?
    Can I also save the table to a file or even to an Excelsheet? How can I do that?
    Thanks for your help!

    Hi Craig:
    thank you very much. To solve the mystery : ) :
    I want to drive a stepper motor with a specific frequency. To get the current degree value of the motor I would like to measure the current time (from the beginning of the move on). (With a formula I get the degree value out of the time)
    Concurrently I would like to get data from a torque sensor and from a pressure sensor. That's why I asked you about the time and the table. The measurement should start with the movement of the motor. How can I do that? Right now I have different block diagrams (different while loops) (see attachment) and I would like to put them in one.
    I haven't done the block diagram for the pressure sensor yet, so there is only the one for the torque sensor and the one for the motor.
    I also would like to set a mark in the table when the voltage value of an analog input gets under a specific threshold value. Is that possible?
    I'm sorry, I'm a novice in LabVIEW. But maybe you can help me.
    Thank you very much!
    Steffi
    Attachments:
    motor.vi ‏238 KB
    sensor.vi ‏59 KB

  • I would like to see the time in a waveform graph (real-time​)

    i need the x-axis of the waveform graph to show real time (from the computer clock). I have made a program with all the example. He read and log data when the chosen time has elapsed. the program work's well...but i dont't know why the x-axis blink every time he draw a point
    i can see two x-axis in the same time.
    i give you a picture of one of a part of my program, i hope someone can help me
    Attachments:
    my_software.JPG ‏128 KB

    Hi,
    I tried to reproduce what you were getting by building a simple VI but I havent had much luck (I have attached the VI).
    Could you post your code so that I can take a look at it?
    Feroz P
    National Instruments
    Attachments:
    Graph.vi ‏39 KB

  • How to measure the time of evolution of a signal in a graph and to compare this time measured with a known value?

    For my application, I am obliged to measure the time of evolution of a signal acquired (from T1 to t2) by an analogical entry of a module NI 9203, and to compare this value with a value known in order to judge if this time of evolution is correct or not.
    PLEASE I prefer an example for better understanding.

    Greetings Jacob,
    I am not sure what you mean with 'time of evolution' but normally you acquire at a certain acquisition rate. How much time that has passed, you can calculate by checking how much points are between your two points of interest.
    If you are acquiring at 5Hz, the time between every point is 200ms. If there are let's say 10points between your two points of interest, 2s have passed.
    Regards,
    Wouter
    National Instruments

  • Transfer time from CATS to SERVICE entry sheet against PO No in Days

    Hi All.
    We have one scenario in that we need to transfer time from CATS to SERVICE entry sheet against PO No for conforming service receipt.
    We need to transfer time in days which i am able to enter in Time sheet data entry by selecting days as a units of measure but it gets convert to Hours in Approval table.
    We want to Hi All.
    We have one scenario in that we need to transfer time from CATS to SERVICE entry sheet against PO No for conforming service receipt.
    We need to transfer time in days which i am able to enter in Time sheet data entry by selecting days as a units of measure but it gets convert to Hours in Approval table.
    We want to transfer time in Days to service entry for conforming service receipt.
    Pl. help us how to transfer time in days to target component.
    regards,
    karan hon.for conforming service receipt.
    Pl. help us how to transfer time in days to target component.
    regards,
    karan hon.

    Hi,
    I think maintaining suitable Data Entry Profile will solve your problem. Take help from HR consultant.
    SPRO->Cross Application Component->Timesheet->Specific Settings for CATS Classic->Setup Data Entry Profiles.
    Regards

  • How to extract the signal out from the waveform by my designated power level?

    Dear all,
         How can  I extract the signal from the waveform accroding to the power level? I read the Trigger&Gate.vi, but this vi extract signal according to the duration time. I want to extract signal according to power level.
         As shown in the following figures, the signal I want to process is between 130000 to 140000, if I zoom in, I can see the the useful signal is between 135400 to 138200. The question is how to extract the signal in the zone?  
        I tried the sub_NoiseEst_And_Chop_Shell.vi in the Packet_based_link example too, but this subvi seemed to be a little slow. Can anybody give me better advice? Thanks in advance!
    Solved!
    Go to Solution.

    I was working on something similar but haven't had time to fully develop it.
    My idea was to use an envelope detector (low pass filter) and then use an energy detection VI on the envelope.
    Here's where I left off
    Anthony F.
    Product Marketing Engineer
    National Instruments
    Attachments:
    test.vi ‏331 KB

  • Measure execution time with PowerShell

    What would be the best way to accomplish following:
    1. Get start time and write it to variable
    2. Do something
    3. Get end time and measure how long it taked from start to end and store the result in variable
    I would need the result be in format like this hours:minutes:seconds and to support 24 hour clock so if the execution starts e.g 11:30 and ends 14:30 it shows correct time.

    PowerShell already comes with a CmdLet that allows you to measure the time a script block takes to execute, that sounds like what you are after.
    See these for more details on Measure-Command:
    https://technet.microsoft.com/en-us/library/hh849910.aspx?f=255&MSPPError=-2147217396
    https://technet.microsoft.com/en-us/library/ee176899.aspx

  • How to save data from a waveform chart to a file?

    Hi! I have a question:how to save a real time data from a waveform chart? attachement is a example,how can i do to save the data from 0 second to 25 seconds to a file ?thanks!
    Attachments:
    example.vi ‏23 KB

    You can use a property node to get the chart history as a array. Then you can write that data to the file. The data in the array in you example can also be writen to a file. If you only wnat a portion of the data to be saved, use the Array Subset function to get the part you want.
    Lynn

Maybe you are looking for