Waveform vs. Dynamic data

Can anyone tell me what is the main difference between the Waveform data type and the Dynamic data type?
I am streaming multi-channel data to file using the datalog format and I want to know if there is a difference if I store it as Dynamic data or if I should convert it to waveform first. Also if I should do the reverse when reading it back. Thanks.

The more I look into DDT, the more it seems like a hassle, especially if you want to perform any operations on the data. For example, after doing a search in NI Support, nearly all responses recommend converting from DDT to an array/waveform/scalar/etc. before you can effectively manipulate the data. Here's a sample of some responses:
DDT Response 1
DDT Response 2
DDT Response 3
The picture I'm forming is that DDT may be useful for simple Express VIs--and this may serve the purposes of a lot of the LabVIEW population in the easiest fashion. But performing any operations on DDT data appears to always require conversion to waveform/array/scalar/etc. This will add a bit of overhead to your code. You may find that you will answer your question(s) only after doing some coding with DDT and comparing it to the code required to do the same task but using waveform data types instead. Having looked into it a bit, I think I'll avoid DDTs.

Similar Messages

  • How to queue two waveforms in dynamic data

    I am collecting two waveforms for voltage data via DAQ assistant. The output is dynamic data which I can view as two waveforms via a chart. 
    I am sending the retrived data to a queue for storage until a seperate loop can flush the queue and write the data to a measurement file via the Write to Measurement File vi.
    When I retrive my measurement file only one of the two waveforms have been stored.
    I have troubleshot the issue and have determined the correct data is going into the queue

    I'd recommend posting some code.  Are you passing in the two waveforms to the queue as an array of waveforms, or a cluster of waveforms?  Without seeing the code, it is just a guess as to what is going on.

  • Plotting multiple graphs on one waveform chart with dynamic data types

    I'm trying to put multiple graphs on one waveform chart and having data agreement errors. I'm wondering if it has anything to do with the fact that dynamic data is being used (I've had no problems with other datatypes in the past). Does anyone know how to correct this problem? I've attached the following .VI. There will be plenty of .VIs on the bottom that won't load, but they are not consequential for this problem.
    Thanks!
    Brian
    Solved!
    Go to Solution.
    Attachments:
    Stiffness Control V1.vi ‏119 KB

    you could use stacked plots by right clicking on the chart and clicking on the stacked plots and than on the front panek you can put a bundle function on the FP and hook your signals up
    Harold Timmis
    [email protected]
    Orlando,Fl
    *Kudos always welcome
    Attachments:
    multiplotwaveform.JPG ‏138 KB

  • How do I Change the plot waveform colour on a Dynamic Data type Graph?

    I have multiple different plots on different graphs, and I want to set the colours of the different waveforms.
    In order to display the waveforms on different graphs, I switched to Dynamic data type and then split the wire
    according to how many channels I have.
    I can set the graph background colour with a property node, and create cursors of different colours no problem
    using the array of references that I have created, so there is nothing wrong with my array of references or the property node.
    As soon as I try and wire a colour box into the Plot>Plot Colour control, I get error 1055 out of the property node.
    I was wondering if it was an error between the keyboard and the chair, but now I am thinking it is someting more sinister.
    The Error box pops up and can't be dismissed remaining the focus until I run TASKKILL on LabVIEW and terminate it.
    Any ideas on how to achieve my goal would be appreciated.
    (LabVIEW 8.6)
    Solved!
    Go to Solution.

    Hi Sheela,
    It's 1 plot per graph, up to 4 graphs displayed on different tabs.
    Here are some screenshots
    Attachments:
    graph_display.JPG ‏135 KB
    set_Plot_colour.JPG ‏79 KB

  • Can't get a dynamic data type and wire (waveform double) to both display on a waveform graph

    Hi,
    I'm teaching myself LabVIEW. I wish to delay a wave form and display it with the non delayed wave form. I used a delay from the examples. The output of the delay is wire (waveform double). The Simulate signal output is dynamic data. My conversion from wire (waveform double) to dynamic does not display on the waveform graph. The VI is attached. Can anyone offer any comment.
    Solved!
    Go to Solution.
    Attachments:
    Three input graph.vi ‏92 KB

    It is displaying just fine.  The display is hidden behind the display of the second signal. Expand the Plot Legend to show all three plots. Then toggle the plot visible property of the second and third plots.
    Lynn

  • What's wrong with dynamic data?

    I am starting this thread to showcase what I might call "dynamic data abuse": The use of dynamic data where it has no business to be used (does it ever?).
    Everybody is invited to contribute with their own examples!
    One of the problems when operating on dynamic data is its opacity. We can never really tell what's going on by looking at the code. It also seems to hide serious programming mistakes by adapting in ways to mask horrendous code and making it seemingly functional, glossing over the glaring programming errors.
    To get it all started, here are a few recent sightings:
    (A)
    (Seen here). No Kidding! The users joins a scalar with a waveform, then wires the resulting dynamic data to the index input of "replace array subset". He cannot see anything wrong, because the program actually works (coercing the dynamic data to a scalar will, by a happy coincidence, return the value of the scalar joined earlier. I have no idea what thought process led to this code in the first place (maybe just randomly connecting functions until the result is as expected? ).
    (B)
    (seen here)
    What's wrong with simply branching the wire???
    (C)
    I don't remember the link, but here's how somebody transposed a 2D array a while ago (bottom part of image). No way to tell from looking at the code picture! (The "FromDDT" and "ToDDT" need to be configured just right ...).
    ARRRRGH!
    LabVIEW Champion . Do more with less code and in less time .
    Attachments:
    join.png ‏2 KB
    split.png ‏3 KB
    DynamicTranspose.png ‏18 KB

    Here's another one for you.  Found here:http://forums.ni.com/t5/LabVIEW/Program-unresponsive-after-a-dialog-box-input/m-p/2447608#U2447608
    Put a bunch of booleans into a Combine Signals and then do a Dynamic Data to Boolean Array.
    I supplied the much more cleaned up version of the code below.
    EDIT:  I just realized I needed to subtract 1 frm the power before using the Scale by Power of 2.  Oops.
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines
    Attachments:
    Button Press Decoder_BD.png ‏41 KB

  • Plot dynamic data with time stamp

    Hi All
    I would like to create a plot of dynamic data, (Voltage readings taken with an In 6008) versus time.
    When the loop starts taking voltage data I would to plot the data versus elapsed time. Voltage versus time elapsed. I have read many examples and tried for many hours to get this to work.
    Please help!
    Mike

    Hi Mike,
    Are you using a Waveform Chart? A chart will continuously plot the data versus time as it is acquired. Try right clicking on the x-axis and selecting Properties>> Display Format. Here you can change the way time is displayed on the x-axis. You can also adjust the way the data is displayed by right clicking and going to Properties>>Appearance>>Update Mode.
    I hope that helps! If not, can you indicate what specifically you have set up in your code and how the result is different from the plot you would prefer to create.
    Thanks,
    Matt
    Product Owner - NI Community
    National Instruments

  • How to use a queue with dynamic data

    When using a collector I have found that it significantly slows down my loop times. I am using LabView7.1 on a Dell PC with Windows XP.  If I use a queue with dynamic data do you think that will require less of my processor and allow for faster loop speeds?
    I have created a queue using dynamic data in one loop and I want to retrieve all available samples each iteration in a slower loop. If I use the flush queue I get a 1d array of dynamic data. What is the best way to convert the 1d array of dynamic data so that the array of dynamic data is consolidated back into a single dynamic data type? Any help would be much appreciated.

    Hi Dennis,
    You could for instance wire the array to an auto-indexed for loop. I attach an example. I assume you wish to concatenate the arrays a singel waveform.
    Hope it helps,
    Pelle S
    District Sales Manager
    National Instruments Sweden
    Attachments:
    Dynamic queue.vi ‏245 KB

  • Writing dynamic data and extract it latter

    i want to write a waveform in a file so that in future i can see the saved waveform on the graph dynamically, i mean if i save the dynamic data for 3 hours can i get the data running on the graph for 3 hours in future please help........

    Saving data at 20kHz for three hours is close to 2GBytes (assuming saving DBL data type), so you probably want to use a binary file format. I would recommend using TDMS.  Each time you create a new data set, write it to a new channel with a unique name.  I would recommend using a timestamp as the name, so you can easily figure out when your data was taken and it is easy to generate the channel name.  Make sure you use enough time resolution in your timestamp name to make them unique.  Alternately, you can use an indexed channel name (e.g. Data0001, Data 0002, etc.).  If you do this, save the timestamp as metadata with each magnitude.  This may make it easier to fetch.
    Reading the data later is fairly easy.  Fetch the data you want using the channel name or timestamp, depending on how you stored it.  TDMS does support multiple access at the same time, so you can read and write "at the same time."
    If your data sets are large (megabyte or larger) you may want to take a look at Managing Large Data Sets in LabVIEW.
    Let us know if you need more information.
    This account is no longer active. Contact ShadesOfGray for current posts and information.

  • How do i convert dynamic data for TCP transmission?

    I am doing a university reaseach project which will gather field data in a remote location (with a phone line), and i want to transmit this data back to the lab for recording and analysis. I have loaded the simple data server and client vi's, but cannot get my data into a suitable form for transmission. The data is aquired through a daq pad and displays on a waveform graph as well as writing to file. The output from the daq pad is dynamic data, and this is what i want to transmit...... any ideas. thanks Jack

    Hi Jack,
    try it in this way.
    Mike
    Attachments:
    Unbenannt.PNG ‏13 KB

  • Feeding dynamic data into formula is causing slow execution and weird results

    I am gathering 11 channels of analog input voltage, then performing a series of (different, editable) calculations on each channel of voltage to convert each to sensor temperature.
    My first stage of calculations (using multiply, subtract, and divide blocks) works fine.
    My second stage of calculations (which includes a natural log "ln") is being performed with the formula block. However, the formula block has three red arrows where the input constants are, and the results of the formula block are intermittent and incorrect (if plotted, the plot just flashes what looks like a value of 1 intermittently... if saved to a csv file, the results show a bunch of zeros and then a row of values, then more zeroes).
    I'm not sure if I need to be converting my dynamic data to an array before feeding into the formula, or if there's some other way applying a complex formula to dynamic data, or...? I'd like to stick with dynamic data because it makes plotting things easier, but I'm open to other suggestions.
    Solved!
    Go to Solution.
    Attachments:
    Capture1.PNG ‏53 KB
    Capture2.PNG ‏20 KB

    Converting from a waveform to a double array makes you lose time information.
    Index Array can be expanded to index out as many items as you need.
    He meant Coercion Dots.  The spellcheck probably went to cocoon.
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines

  • Save a dynamic data as a video

    hello,  
      I have a dynamic data waveform and I want to save this waveform as a video so if anyone can help me with this  and thank you

    Hello Khaled,
    I think the following post would answer your questions,
    http://forums.ni.com/ni/board/message?board.id=170&message.id=358023&requireLogin=False
    http://zone.ni.com/devzone/cda/epd/p/id/5572
    Emil

  • How to display dynamic datas and double datas (chart)

    Hi all !
    I would like to display dynamic datas and double datas by using charts.
    However, it doesn't work and I don't understand why.
    Can you help me to fix that ?
    Best regards,
    - John
    Attachments:
    double_dynamics_data.vi ‏54 KB

    Hi John,
    the sine looks like it should look with your VI!
    You convert the DDT to a scalar DBL. That conversion will only use the first sample of the generated sine waveform - usually this is always the same (offset) value when you generate full periods… Or to put it in a mathematical expression: sin(0°)+4 = 4!
    When you want to display waveform you should work with waveforms!
    Actually, I have used Dynamic data type in order to simulate an signal.
    Well, I also simulated a signal in my example VI. I didn't use any ExpressVI to do so…
    In a few weeks, I will receive a sensor. I will use in LabView 'DAQ Assistant' whose the ouput is a Dynamic Data.
    Nobody forces you to use the DAQAssistent ExpressVI. There are nice DAQmx functions available and LabVIEW comes with a lot of ready-to-use example VIs…
    That's why, I used in first place, the 'Simulate signal'. So I think I should keep Dynamic Data Type
    I do think you don't need to use the DDT. I think it's better to understand what is going on in your VI. And I think the DDT will be no help for you…
    Best regards,
    GerdW
    CLAD, using 2009SP1 + LV2011SP1 + LV2014SP1 on WinXP+Win7+cRIO
    Kudos are welcome

  • How to add dynamic data type as one of the terminals of a Custom VI

    Hello,
    Can anybody tell me if it's possible and how to add a dynamic data type as one of the terminals of a sub-VI? I would like to have a terminal that I can connect signal from DAQmx to my sub-VI.  Thanks.

    Here is one of the coolest things about LV, and one of its major advantages over languages like VB - it has automatic memory management and it compiles whenever you make a change. This allows you to be very free in the way you handle data and change your code. In this case, you should note the small gray dot that appears when you wire the dynamic data into the Array of Waveforms input. This gray dot means that LV coerces the source data type (DDT, in this case) to the target data type (Array of waveforms). If it wouldn't match, you would get a broken wire, the VI couldn't run, and if you hover over the wire or press the broken run button you would get an exact description of the error. Cool, eh?
    This can also be seen in other things. For example, you can change an array's data type or number of dimensions by simply doing it. This will automatically be reflected anywhere the array is called in the program, and if anything won't match, the VI will be broken. If you change the # of dimensions of an array, any array function which that array is wired to will adapt. This allows you to be very safe in the way you write code, because you have LV watching all that annoying stuff for you. You don't have to worry about misspelling a variable here (for the most part).
    One important point about coercion - it does take processor power. This will usually only be evident in large arrays or loops, but it is an important point. Another thing is that coercing numeric types can cause you to lose data - coercing a DBL to a U16, for example, will cause you to lose all the fractional data.
    To learn more about LabVIEW, I suggest you try searching this site and google for LabVIEW tutorials. Here and here are a couple you can start with. You can also contact your local NI office and join one of their courses.
    In addition, I suggest you read the LabVIEW style guide and the LabVIEW user manual (Help>>Search the LabVIEW Bookshelf).
    Try to take over the world!

  • Convert "1D array of dynamic data" to "Dynamic data" after auto-indexing with loop

    Hi -
    I have a question about how exaclty auto-indexing works with the Dynamic Data type when exiting a while loop. I'd like to use the DAQ assistant to record data through an analog input (on the MyDAQ) and then replay that data through an analog output. This works fine if I use the DAQ Assistant to record data for a set amount of time:
    However, I run into trouble when I try to use a While loop with a stop button to record data for an arbitrary amount of time. I set the dynamic data tunnel out of the While loop to "Indexing", but then when it exits the loop, it becomes "1-D Array of Dynamic Data" instead of just "Dynamic Data", and get a broken wire when I try to connect it to the input of the DAQ Assistant. I've also tried converting the dynamic data to Array and Waveform data types inside the loop, but have the same issue (they become 2D Array and 2D Array of Waveform respectively when leaving the loop). Try as I might using blocks like Convert to/from Dynamic Data Type, or Array Subset, I'm unable to get them back down to just Dynamic Data or Waveform, which will be accepted by the DAQ Assistant:
    One other small note - I'm not sure if using the "Build Array" function with a shift register accomplishes exactly the same thing as just auto-indexing an array out of the loop - so I've tried both, but still have the broken wire issue.
    I'm assuming this is just a simple issue of using the right block to convert "1D Array of [Something]" to just plain [Something]. Any help appreciated.
    Attachments:
    PWM_FlatSequence.vi ‏101 KB
    PWM_FlatSequence_While.vi ‏129 KB

    I have been facing problem for all temperature values placing the Write to Measurement File outside the Loop. 
    In Error message it says" Source: 1D array of dynamic data and Sink: Dynamic data".
    Is there any means of convering 1D array of dynamic data to dynamic data?
    I would highly appreciate any help.
    Attachments:
    Temperature Logger.vi ‏110 KB

Maybe you are looking for

  • Ai CS3 CS5 - Raster Effects Resolution changes

    Just upgraded from CS3 to CS5. An Illustrator logo that contains a drop shadow (created in Ai CS3), placed into InDesign (CS5), and exported to PDF, fails in PDF checking due to low resolution. I traced this back to the Ai file. The Document Raster E

  • My Keynote is not working

    I created a presentation on iPad mini with the new Keynote and I would like to open it on my Macbook thru iCloud. But when I click on the presentation, it gives me an error that I need a new version of Keynote and once I go to Appstore it says that t

  • Runnable JAR from Eclipse with DLL

    Hi, Is it possible to export a runnable jar from Eclipse that includes and uses a dll? My simple application uses an 'external' API - JIntelliType - a jar file and a dll belongs to it. I can run the project fine from Eclipse, but I can't export it to

  • I think my ipod died

    i'm hoping someone can help me out with this. i had tons of music that i downloaded from cd's and purchased from itunes that was stored on my ipod. last night i try to turn on my ipod and it wouldn't turn on. eventually i was able to turn it on. ever

  • How To create a new DAG across a WAN connection?

    In preparation to moving our mailbox/hub transport server from our local office to a data center, we would like to create a DAG, putting the second mailbox server into the data center What is the best way to start a DAG when the servers are across a