Stream Digital waveform to disk

 I need to constatnly monitor a set of digital outputs during a vibration test for any false alarms.
I am using a Measurment Computing USB-1024LS (because that's what we have).
I want to stream eight alarms to disk like a chart recorder with a (seperate if need be) time index of any changes that occor.
I have been experemening with the Write Waveform to File and Export Waveform to Excel vi's but neither oen really gives me what I want.
The Write Waveform to File writes a file that I can not use because I do not know what format it is in.
The Export Waveform to Excel sort of works but the time stamp loses resoultion, and it puts an empty line betwean each reading.
What is the best way to accomplish tihs? 

Similar Messages

  • Digital waveform editor sample size limit?

    Hi,
    Can anybody please tell me the sample size limit of the Digital Waveform Editor? Thanks!
    Jing

    Hello,
    1) You can actually acquire as many points as you want. You may be worried about the throughput of all this data from the DAQ board into computer memory, but I don't think this will be much of a concern for your application. You're limited only by how much memory your computer has. Mainly, you should be concerned about what you are doing with all those samples after they are acquired. Are you just using them once then throwing them away? (Such as the "Cont Acq&Graph Voltage-Int Clk.vi" shipping example.) Or are you streaming them to disk? If you just keep them all in computer memory, then there would be some maximum number of samples you could hold but that number would be system dependant and you'd just have to experiment to find that number.
    2
    ) That's a great idea to take those voltage signals and make them digital inputs. This way you'll also free up some more bandwidth giving you the option to increase the sample rate on your other channels. However, you won't be able to include any DIO channels in the same task with your other analog channels. You need to create a separate task for these digital input channels. Lines 0,1,2, and 4 will be reserved for communication with your SCXI chassis by the way. You also won't be able to do any buffered sampling like you can with the analog channels. The DIO for the PCI-6024E is only immediate and software-timed. (You must poll the status of the line with a software loop.)
    Let me know if you have any other questions.
    Russell
    Applications Engineer
    National Instruments
    http://www.ni.com/support

  • How do I sample a digital waveform?

    I have a digital waveform that represents a 1-bit data stream.  The bit rate is 1Mbit/s (i.e. For a value of '1' the line is high for 1us, for '0' the line is low for 1us). 
    I want to create a numeric array representation of the line by taking a sample of it every 1us and appending it into an array.
    How do I set it up in LabVIEW to sample the line at 1MHz and create a 1-D numeric array of the bits?

    Hi Raine,
    It sounds like you're trying to keep data from previous samples in memory through the next iteration of the sampling loop, then append the new sample to the array.
    Using shift registers is the most reasonable option. To create a shift register, wire your sample data to the edge of your sampling loop then right click and select Replace with Shift Register. You can then use a Build Array function to connect the shift register data with the current sampling data.
    Cheers.
    | Michael K | Project Manager | LabVIEW R&D | National Instruments |

  • Generate digital waveform form a read from spreadsheet.vi

    Hi, I'm very new to LabView and am having some problems in completing what I believed would be a very simple task.
    I am using the Read from Spreadsheet.vi to read in an Ascii tab delimited file that I created in Matlab (the file is simple a vector of 1's and 0's that represent a binary stream) All that I want to do is take the output from this and generate a digital waveform corresponding to the 1's and 0's in the array but I cannot find a way of doing this.....
    Help much appreciated,
    Thanks.

    You should be able to just run your data straight  in to the digital write function as long as you select the correct port width of your hardware.
    If you want to do it with a digital waveform it's a bit trickier, the digital waveform data type is a surprisingly complex animal.
    There might be a better way to do it, but this is what I've had to do in the past...
    The "build digital data" function needs a 2D array in, so convert your 1D array into a 2D.
    Then the digital data can be input into a Build Digital Waveform.
    Then the digital waveform can be output with the write digital waveform.
    Message Edited by Troy K on 03-23-2008 11:37 AM
    Troy
    CLDEach snowflake in an avalanche pleads not guilty. - Stanislaw J. Lec
    I haven't failed, I've found 10,000 ways that don't work - Thomas Edison
    Beware of the man who won't be bothered with details. - William Feather
    The greatest of faults is to be conscious of none. - Thomas Carlyle
    Attachments:
    array_to_digital1.png ‏4 KB
    array_to_digital.png ‏9 KB

  • How to playback a digital waveform

    Hi I would like to do some post processing work on a digital graph data. I would like to use 2 seperate VIs for data acquisation and post processing. So first I acquire the data  then pass the whole waveform data as an input to the other subVI but I olways get the last waveform  . Could you please let me know how I can pass the whole information about a continous digital waveform without saving it on disk
    thanks

    You can do a variety of things, such as building an array of waveforms by auto-indexing them where you wire out of the aquisition loop.  Alternatively, if you want just a single long waveform, the Append Waveforms.vi (Functions -> Programming -> Waveform -> Analog Waveform) should do nicely.  You can also manipulate the waveform components directly and append the data arrays if you want some more control over it, but that's pretty much what the built in vi does.
    The Colex Group
    Lead Software Engineer
    Certified LabVIEW Developer

  • PXIe-5122 continuous stream 2 channels to disk with 100MS/s

    Hey,
    I am currently trying to find a way to stream 2 channels to disk with 100MS/s with my PXIe-5122. According to the product specification, the card should be able to do this. 
    Unfortunately, I have'nt seen any programs.
    What I have are two loops, one for the DAQ and one to empty the onboard memory using a queue and writing the fetched waveform data into a tdms file. I keep obtaining the error, that samples in the onboard memory are overwritten... therefore, the VI doesn't empty the onboard memory in sufficient speed.
    Does anybody know how I could solve this problem? Or does anybody have a program?
    Thanks for the help!

    Hi lehrm,
    you are writing about that you didn#t see any application for the 5122. If you mean examples, there are a lot of examples installed on your system when you install the driver sw for the device. eg. there is an example called niScope EX Stream to Disk, that seems to be interesting for your issue
    Examples are available in the Example Finder of LabVIEW, in the folder: "Hardware Input and Output" -> "Modular Instruments" -> NI-SCOPE (High Speed Digitizer)" -> "Continious Acquisition".
    This can give you first ideas! 
    Kind regards
    Tobias S.

  • Can digital waveform editor be launched from labview8.6

    Hi,
    Have anyone tried launching digital waveform editor from labview8.6? if so please let me know.Is there any connectivity VI that can be used for waveform editor.
    Thanks,
    Nandhini

    Nandhini,
    You have two different options for interacting between the Digital Waveform Editor and your hardware.  You can either use the play button directly from the Digital Waveform Editor to launch Signal Express with a HSDIO Express Step configured to generate the waveform you are creating in the DWE, or you can edit and save a waveform to disk, and then configure a LabVIEW program to generate that saved waveform.  It sounds like the second method is what you are looking for.  Save the waveform you are editing in the DWE to disk at a specific location, then configure your LabVIEW VIs to generate the waveform, and use either the HWS read VIs, or you can use the write waveform VIs of the HSDIO and specify the location of the HWS file.
    Brian Coalson
    Software Engineer
    National Instruments

  • Simultaneous analog and digital waveform read with PXIe-6361 and BNC2120 ?

    Hi there,
    I am trying to collect both analog and digital signals from a PXIe-6361 linked to a BNC2120, using the attached VI. I am running Labview 2011 64bit. This is the first time I am working with digital input. On the 2120 board, I have the digital input BNC cable connected to User Input 1 and wire between the screw terminal of UserInput 1 and the P0.1 (Digtial I/O) screw terminal.
    I have two questions related to this:
    1) When I try to run the VI in its current state, I get the following error:
    Error -89137 occurred at DAQmx Start Task.vi:3
    Possible reason(s): Specified route cannot be satisfied, because it requires resources that are currently in use by another route.
    Property: RefClk.Src
    Source Device: PXI1Slot2
    Source Terminal: PXIe_Clk100
    Required Resources in Use by
    Task Name: _unnamedTask<6>
    Source Device: PXI1Slot2
    Source Terminal: None
    Destination Device: PXI1Slot2
    Destination Terminal: RefClockInternal
    Can anyone point me in the right direction for troubleshooting this?
    2) I would like to combine my regular waveforms and the digital waveform into one array which would then be written to file. I can't figure out how to combine the two different waveform types...can anyone give me a hint on this?
    Thanks for your help,
    Claire.
    Attachments:
    Export Waveforms To Spreadsheet File (1D)_wo extra line.vi ‏33 KB
    Multi-Device Synch-Analog Input-Finite Acq-Analog Start_Claire_wDigitalin.vi ‏105 KB

    Hi ClaireJ,
    Sounds like a reference clock conflict. This KnowledgeBase (KB) talks about this error when using simultaneous sampling. Also, might want to check the device routes in Measurement and Automation Explorer (MAX) as discussed here. Finally, if you are routing your PFI line over a RTSI connection, this error can occur. This KB discusses it.
    As to your second question, this post should help.
    Bill E. | Applications Engineer | National Instruments

  • How do I output three digital waveforms at once?

    I posted this in Digital I/O, but now I think it's actually more appropriate here because it's not a hardware question. I need to output three digital waveforms at a relatively low frequency, 71.9 Hz. I have a PCI DAQ card, the 6024E and am using the NI-DAQmx functions to try to do this. My program basically generates the square wave that I want, and converts it into a digital wave. I do this 3 times for the three separate waves, and then I combine them into an array and send them to my DAQ functions, which are in a while loop so I can get continuous output. My problem is that the waveform that the DAQ is actually outputting is not what I want. It's outputting a wave that has the same duty cycle (approximately) but the frequency is over 2 kilohertz. It's not like this all the time; after it outputs about 7 cycles of this wave, it goes to logic low for a long time, and then repeats itself. When I probe the digital waveform right before it goes into the DAQ functions, it's running correctly at 71.9 Hertz. Am I doing anything wrong with the DAQ functions or the sampling information? Thanks in advance.
    -- Josh Matloff

    Hello Josh,
    I'm pretty sure that the reason that your digital waveforms are not being produced at the correct frequency is because your digital output is not associated with any sort of timing. Unfortunately, with an E series board you can only do software timed digital operations. This means that the frequency at which the values on your digital lines will be updated depends on how fast/often your computer executes the DAQmx Write that is inside of your while loop. If you have an M series board, you can actually correlate the DIO operations with another subsytems clock (AI/AO sample clock, etc.) which means that you can acheive hardware-timed DIO. In the event that you do not have access to an M series board, I think that AnalogKid2DigitalMan was spot on that you would want to use counters to generate pulse trains (that is if your digital waveforms have a constant duty cycle and period). Depending on what the DAQ board is outputting to, you might also want to consider using the Analog Output channels to generate your digital waveform. As long as you continue to use the digital lines on the 6024E, there is not really a way to guarantee the timing of when the digital lines will be updated. You might be able to get close, but you will probably see some "hiccups", especially if your computer needs to service interrupts or give processing time to another application. And lastly, heed geckoee's advice and don't forget to properly close out your tasks! Putting in some error handling may also help in the debugging process.
    Take care,
    E.Lee
    Eric
    DE For Life!

  • How to do a digital waveform subtractio​n

    i am trying to subtract two digital waveform using subtract operation, but it seems that the subtraction opertation doesn't like digital waveform.
    error message:"You have connected two terminals with different types. the type of the source is digital waveform, the type of the sink is double"
    anybody can help? please.

    Hello,
    See the attached modified example. Now you can access data in a 2D array .
    Software developer
    www.mcm-electronics.com
    PS: Don't forget to rate a good anwser ; )
    Currently using Labview 2011
    PORTUGAL
    Attachments:
    dither tech2.vi ‏57 KB

  • Convert digital waveform to array

    Hello,
    I posted a problem before Christmas regarding data acquisition and accessing the hardware buffer on a 6562 card. I managed to figure out that problem but now I'm stuck when I try manipulating the data I obtain. (The original problem can be seen here: http://forums.ni.com/ni/board/message?board.id=70&​thread.id=7926)
    Briefly, my application is clocking and synchronising an ADC board and then looking at the raw ADC data that comes back from the board. To provide synchronisation I am sending a sync pattern on one data line and using a second line to send a "start of frame" indicator, a '1' bit when I know that the board is synchronised. This line otherwise only sends ‘0’s. This cable is wired back into the NI card and LabView. All data sent uses the NI-SHDIO Generation Express VI and I'm using the Acquisition Express VI in parallel with the Generation VI to capture the raw ADC data when it comes off the ADC board. Since I am acquiring both the ADC data and the frame indication data (which I am looping by connecting that output DIO to an input DIO), the digital waveform essentially contains 2 arrays and I can view these from a graph indicator within LabView.
    No problems so far. In order to manipulate the data and look at individual frames I am writing the ADC data to file. To extract the digital data from the digital waveform I am using the following VIs:
    -Get Waveform Components
    -Get Digital Data Components
    -Write to Binary File
    To view and manipulate the data I read it into Matlab and this is where I can tell that something's not right. When I read the file into a variable in Matlab, the variable becomes a 1D double array of 40,008 elements. This seems very odd, considering the Acquisition VI only takes 20,000 samples. When I look at the 1D array more closely it looks like the two arrays have been cross added in some fashion. The 1D array certainly doesn't match either of the two arrays visible in the graph indicator inside LabView. I can understand if the file is reading one array after the other (20,000 + 20,000 almost equals 40,008 after all) but that doesn't appear to be the case.
    I would greatly appreciate some help on how I can extract the two data lines either using Matlab or LabView. Currently it looks like LabView is making a hash of things whenever I try to manipulate or extract the two arrays from the digital waveform. I have tried a multitude of different VIs and ideas but nothing appears to work.
    The most straight forward way would be using the "Converting Digital Waveform to Binary VI" but it can't handle two arrays within the same waveform. (The result looks like the two arrays exclusively OR’d together). To combat this I tried running two Acquisition Express VIs in parallel (one for ADC data, the other for the frame info) but got an error message referring to invalid handles. I presumed this meant that I can't run two acquisition VIs simultaneously, judging from forum posts of users facing the same error message.
    Sorry for the long post but I feel that I needed to fully explain the problem. I'm attaching my LabView code.
    Thank you for reading,
    Christian
    PS. GenAcq2.vi is my code. Waveform_GenAcq2_Cfg.hws is sent by the first Generation VI; Waveform_GenAcq2_shorter_frame_indicators.hws by the second Generation VI.
    Attachments:
    CodeAndWaveforms.zip ‏126 KB
    GenAcq_Screenshot.JPG ‏83 KB

    The extra "8" is being caused by the fact that the "Write to Binary File" VI has a "prepend array or string size" input. Its default is true, and in your case you have it unwired, so you get the array size prepended. As for the rest of your issue, what are your Matlab commands to read a file? The following example VI, which generates a digital waveform and saves it to file,
    can be correctly read into Matlab using the following commands:
    fid = fopen('c:\temp\digData.bin','r');
    F=fread(fid, [256,8], 'uchar');
    Message Edited by smercurio_fc on 01-18-2008 05:26 PM
    Attachments:
    Example_VI_BD.png ‏11 KB

  • How to send digital waveform to the DAC?

    How to send digital waveform, obtained by Function Generator.vi to the Digital-Analog Converter? What kind of subVIs I have to use for this? I have LabView_5.0 on MacOS.

    The 6032 is not a GPIB board. It is a DAQ board board and has 2 16-bit analog outputs, 8 16-bit outputs (16 single-ended), and 8 digital i/o lines. I don't know what you mean that a MIO16/LPM16 is connected to it. There are a lot of example VIs that ship with LabVIEW. Select Find Examples from the help menu and look under Hardware Input and Output. LabVIEW 7 has some under DAQmx>Analog Generation and older versions of LabVIEW have them under DAQ>Analog Output.

  • Bug in Digital Waveform Graph X-Axis

    Hello,
    I am making separate queried to a database to retrieve analog and digital data over the same time period.  The data were logged at 2 second intervals.  I have verified that both result sets return the same number of values with the same t0 and dt.  I then plot the analog values on an XY Graph and the digital values on a Digital Waveform Graph.  I then use property nodes to sync the two graphs (left and right plot bounds, XScale.Range, and Cursor Position.X).  After doing this, I can see that the datasets do not line up between the two graphs.  The data on the Digital Waveform graph ends several seconds sooner than the analog data.  The x scales of the graphs appear to match but the plots don't align in time.
    Has anyone else observed this behavior?  Is there any work-around?
    Thank you,
    Peter

    There is a much simpler way to synchronize these charts. Just use a stacked chart.
    If you use a bundle function you can take two signals (almost data type) and wire them into a Waveform Chart together.
    Then on the front panel right click on the chart and select Stack Plots
    Since you only have 1 X axis now they are instrincly synched and will always write valules at the same time and update the UI together. You can skip all of the scale synching....
    Since the data you are working with has lincked time stamps, the data will need to be matched, (make sure the samples are anyched and each itteration both would have the same number of samples.
    The last allternative would be to strip the time stamp off of your data then build a new data structure, with the digital data, analog data and 1 set of matched time stamps. You can then plot this on an XY chart using the time stamp for the X axis for both of your other plots.  Let me know if you have other questions.

  • Digital Waveform graph with a lot of samples

    Hi,
    I have to display in a Digital Waveform Graph a lot of data read from a file(2.000.000 of samples for 36 signals). If I read the file and I try to display all the data, the Vi became unusable. For example, to zoom a graph region, it may take 30-40 seconds, scroll is impossible ecc, ecc..
    Apparently LV doesn't perform a decimation of points. In measurements studio 8, this problem doesn't exist...but I have to use LV 7.1..
    any suggestion ?
    At the moment I have developed a DLL in VC++ that perform a decimation of samples, but performance are not very good !
    Thank you for any idea.
    Regards.

    Hi Garraty,
    Excuse me but I have several questions for you.
    1)     Have you tried some kind of incremental approach, starting from 1 waveform and increasing towards 36? Do you experience some kind of on/off degeneration between, les’s say, 34 and 35 waveforms?
    2)     How can you decimate a digital pseudorandom sequence of 2M samples without loosing information?
    3)     Is this 2M samples an unavoidable constraint for your application?. Actually, it seems very difficult to extract some kind of visual information from a pseudorandom pattern of this length?
    Thank you very much.
    Kind Regards
    FiloP
    FiloP
    It doesn't matter how beautiful your theory is, it doesn't matter how smart you are. If it doesn't agree with experiment, it's wrong.
    Richard P. Feynman

  • Memory leak in Digital Waveform

    I have a program with a pretty serious memory leak that uses up all my system RAM and crashes my computer within a few hours of running the program.
    The program takes an array of U16s where each bit represents a digital signal. The VI converts each U16 to a digital array and groups the resulting 16 digital signals into different busses for display on a Digital Waveform Graph. The profiler doesn't show any excessive memory usage in the VI. I put the whole VI into a Diagram Disable structure and moved a few pieces out at a time, and eventually the only thing inside the disable structure was the Digital Waveform Graph indicator. When this indicator is enabled, the memory usage of my system rises slowly and steadily until it uses all available RAM and crashes the system.
    If I replace the Digital Waveform Graph indicator with a cluster, the memory leak still occurs (but much more slowly). I thought using the cluster fixed the leak until I reran the VI overnight while using the cluster instead of the Graph.
    If I stop the VI before all the RAM is used, the RAM will not release until I close LabVIEW entirely. Once LabVIEW closes, the memory is released slowly and exponentially unless I use the "End Process" option in Task Manager.
    This is a continuation of a previous post I made where I thought the memory leak was due to problems transferring data from an FPGA for display.
    I ran the MemLeak vi (attached) on two separate systems, both running LV 2013 SP1, and got the same results. The memory leak is noticeably fast when using the enable structure connected to the Digital Waveform Graph but still present when using the cluster of Digital Waveforms.
    Attachments:
    MemLeak.vi ‏33 KB
    LV shutdown.PNG ‏101 KB

    Thanks for the replies.
    In response to John's points:
    1. The attached VI is a simplification of an FPGA VI that read a fixed number of samples from a DMA FIFO using an FPGA Interface Invoke Method approach. I'm using a card (PXI-7842R) that doesn't allow use of the Acquire Read Region method. In order to allow people without an FPGA card to hopefully see the issue, I replaced it with the for loop. Assuming that this for loop does leak (which I don't believe it does; as altenbach said, it's a fixed size allocation that LV should be able to reuse), why would I see a difference in the leak magnitude depending on which indicator I connect to the array?
    2. I've previously reviewed the document you referenced, and I don't see any errors from it present in my code; do you? I have no global/local variables, strings/arrays displayed on front panel, property nodes, coercion dots, altered memory sizes, resizing/reallocations, etc. I don't see any weird buffer allocations. I used to have the conversion from U16 array to digital waveforms in a subVI but placed it on the same diagram to allow incremental use of the Diagram Disable structure.
    3. The forum post you referenced had many of the items discussed above, plus it was solved using an RT FIFO. I'm not passing data from a producer to a consumer; I'm just displaying acquisition results. I guess you could say I'm processing the data, but I'm really only converting it to a format that the indicator will take; I'm not operating on the data.
    It's good that the leak doesn't show up in 2014, but my SSP runs out in a couple of days; I never got an upgrade to 2014. This is the last item remaining on the development path, and we've already spent ~$4k to upgrade the controllers enough to display the acquisition without dragging down the CPU. I will be in hot water if I spent all that money and then end up having to scrap the display...

Maybe you are looking for

  • Transfering...

    help please.... hi i bought a new laptop and would like to transfer. i tried this one thing i found on this site but it didnt work. on my laptop i get a message that says cannot find itunes, created by newer version. and it wont open itunes...i need

  • Photoshop to InDesign size issue

    I'm working on some CD packaging in Photoshop, and want to put it into InDesign for crop marks and such. My Photoshop file is 9.5 x 4.75 (inches). I then add a .125 bleed to the canvas making it 9.627 x 4.877. It is at 300 dpi. I then fire up InDesig

  • Error while installation of App-v Server in VirtualLabs

    In VirtualLabs http://go.microsoft.com/?linkid=9749539 When i tried to install server in NYC-SVR1 i got error. I am unable to proceed. Please help.

  • Change Screen Brightness

    Is there any way to adjust the brightness of the screen in Adobe Air for Desktop (running in Windows 8.1)? I have an app that I want to always run at full screen brightness. If not, does anyone know of any ANEs that will work? If also not, does anyon

  • I cannot download Flash Player:  why and how?

    I can not down flash player. Why and How do I do it?