1D Array of Cluster of 2 Elements Write to Spreadshee​t

Hi all, first time using LabView in many years.  I am trying to write a VI that will acquire data from our cDAQ (right now just trying to get it to work with a single thermocouple in a NI 9211, but eventually will be 8 X thermocouple, 4 X pressure transducer), display it in realtime on a plot, and then when the acquisition is stopped, output the data to a file for later use.  I am currently using the Base LabView package.
My problem (as I remember it was 7 years ago when I last used this) is with the data types not working together.  This is my thought process currently on building this VI.  Everything is inside a While Loop with the Wait function at 1000ms.
- Acquire a point of data using the DAQ assistant
- Send that point of data into a bundle
- Send the iteration count into the same bundle (as a timestamp)
- Send the resulting cluster of 2 elements into a Build Array function
- Send the resulting 1D array to a shift register in the While Loop, as well as to an XY graph for realtime plotting
- Wire the incoming point on the shift register back into the Build Array function
In my mind, this allows the XY graph to plot the complete array every iteration, giving a realtime view of the signal.  Everything works fine up to this point.  My problems are:
When I stop and restart the program, the shift register is not cleared, so the existing data in the array remains on the graph.  I know I need to initialize the shift register to clear it, but I cannot figure out what to wire to it that will be compatible with the data type (I just get broken wires with everything I tried).
Similarly, I cannot figure out how to output this data to a spreadsheet after I Stop the While Loop.  I think I should wire the "Write to Spreadsheet File" VI to the outgoing shift register, but again, I can't get compatibility with data types (source is a 1D array of cluster of 2 elements).
I have attached my current program "Production" to this post.
I look forward to the help!
Brad
Attachments:
Production.vi ‏46 KB

Hi Brad,
I would suggest you change your architecture. First, to answer your questions:
1.
In order to ensure that your shift register is not reading the last
value from it's memory location, you just need to create a constant for
the shift register. To do this, right-click at the input of the
'left-placed' shift register and create a constant.
2. The Write
to Spreadsheet is expecting a 1-d or 2-d array while you are wiring a
Dynamic Data Type. Use the Convert from Dynamic Data Type to convert
the data into the appropriate waveform after which you can get the
waveform attributes which includes the values and the timestamp data. Or, you can use the Write to Measurement File to write to a .lvm file which can be opened in Excel as well.
Changes to your architecture:
Since
you are using a lot of channels, I would advise you use a
producer/consumer architecture. You can have a look at this
architecture by navigating to File -> New.. and searching for the
Producer/Consumer template. You will notice that this architecture uses
queues. The way you will design your VI is to use DAQ to acquire the
data into your producer loop, convert this data into a waveform and
then send this data to the consumer loop via queues. In your consumer
loop, you can write this data to a file. At this point, I would
encourage you to write to a binary file instead of a spreadsheet file. The write will happen faster and you will be using less space on your hard disk when compared to ASCII writes.
I know this can be real confusing for a beginner, so be sure to post back if you have any questions.
Adnan Zafar
Certified LabVIEW Architect
Coleman Technologies

Similar Messages

  • Write an 1d-array of cluster with 3 elements

    Hi,
    I have to make a "Power spectral densities" analyse from my waveform data. The results from this VI is an array of cluuster with 3 elemments. Now I want to write this array of cluster with 3 elements to a file. And later it must be able to use this file with EXCEL!!
    thanks

    Hi
    I found some outer Forum entries about this topic.
    Look at this links:
    http://forums.ni.com/ni/board/message?board.id=170&message.id=49553&requireLogin=False
    http://forums.ni.com/ni/board/message?board.id=170&message.id=51526&requireLogin=False
    I hope this helps
    Manuel

  • How can I write a 1d array of cluster with 3 elements to a file?

    Hi,
    I have to make a "Power spectral densities" analyse from my waveform data. The results from this VI is an array of cluuster with 3 elemments. Now I want to write this array of cluster with 3 elements to a file. And later it must be able to use this file with EXCEL!!
    thanks

    Hello schloronzo,
    make a for loop feeded with your array. Inside the for loop unbundle
    the cluster, "format into string" the 3 values, adding the result to
    the ones before and collect them in a shift register. Then save the
    resulting string to a txt-file. If you make a good format string then
    Excel is able to read your txt-file (use tab a separator and CR/LF
    after each 3 values aka "csv format").
    Best regards,
    GerdW
    CLAD, using 2009SP1 + LV2011SP1 + LV2014SP1 on WinXP+Win7+cRIO
    Kudos are welcome

  • Write 1d array of cluster with 2 elements to file

    HI!
    I'm new at LabView so I hope the question is very simple to you:
    I am using a waveform graph to display several measurements.
    Now I want to save these Measuremens. The data are stored in 1d array of cluster with 2 elements.
    What is the easiest way to do this??
    Thanks

    If you are already using waveforms you can simply wire right up to "Write Waveforms to File.vi" in the Waveform palette under Waveform File I/O.
    Daniel L. Press
    PrimeTest Corp.
    www.primetest.com

  • How do I convert a 1-D array of cluster of 5 elements into a 2-D array of numbers? (history data from a chart)

    Hello,
    in my vi I have a chart with 5 Plots displaying measurement data.
    The user should be able to save all the history data from the chart at anytime. (e.g. the user watches the chart and some event happens, then he presses a "save"-button)
    I know, that I can read out the history data with a property node. That is not the problem. The problem is, how do I handle the data? The type of the history data is a 1-D array of cluster of 5 elements.
    I have to convert that data somehow into a 2 D-array of numbers or strings, so that I can easily save it in a text-file.
    How do I convert a 1-D array of cluster of 5 elements into a 2-D array of numbers?
    I use LabVIEW 7.1
    Johannes
    Greetings Johannes
    Using LabVIEW 7.1 and 2009 recently
    Solved!
    Go to Solution.

    Gerd,
    thank you for the quick response and the easy solution.
    Look what I did in the meantime. I solved the problem too, but muuuch more complicate :-)
    And I have converted the numbers to strings, so that I can easily write them into a spreasheet file.
    Johannes
    Message Edited by johanneshoer on 04-28-2009 10:39 AM
    Greetings Johannes
    Using LabVIEW 7.1 and 2009 recently
    Attachments:
    SaveChartHistory.JPG ‏57 KB
    SaveChartHistory.JPG ‏57 KB

  • Connect 1 D array of cluster of 2 elements with dynamic data

    Hello
    The type of source is 1D array of cluster of 2 elements and the type of sink is dyanamic data. Can any one guide me how to connect these 2 elements together. Any response would be highly appreciated. 
    Thanks 

    First, this question would more appropriately be posted to the LabVIEW Board. It is not a signal conditioning issue.
    The dynamic data type (DDT), sometimes referred to as the "evil dynamic data type," completely obscures the internal data structure. The only way someone could help is if you tell us what the source is expecting the internal data structure to be. The only objects which want DDT inputs are Express VIs, which are also good at obscuring thier contents. Implementing the sampe funcitonality with standard VIs might be a better approach.
    You also have not completely specified the source. What are the data types of the cluster elements? 
    Lynn

  • Connect an 1-D array of cluster of 3 elements with dynamic data

    hi everybody.
    I am trying to wire an 1-D array which consists of a cluster of 3 elements with dynamic data. The error that appears says that I'm trying to "connect two terminals of different types". Actually, what I want to do is write to a file the FFT data produced by the Spectral Measurements vi. In order to write to a file, I am using the Write to Measurement File vi, but I don't know if this is the right way to do this. Has anyone any idea about this problem, because I'm out of ideas....
    Thanks a lot!!

    ok! This works really good! thanks a lot! now i'm facing an other problem...The output file does not contain the right data. I want to collect the FFT (frequency vs. amplitude) of a time signal and it gives me the record length and the sampling rate instead.
    For example, if I use a sampling rate of 300 ksamples/sec and a record length of 1000 sampling points, the file to be created has one column containing the record length e.g.
    0
    1
    2
    3
    498
    499
    and on more column containing almost zero values and the value of the sample rate. Do you have any idea why this is happening?
    Thank you!!

  • Adding an element in an array of cluster of 2 elements

    Hi all,
    I have a 1D array containing a cluster of 2 numeric elements (= 2 rows of 100 values).
    From this array, collecting new data in for loop, I want to create another array containing a cluster with 9 elements: in each for I want to add an element (= like one row).
    After this, I want to compare data from one element with a fixed value, and when the value is find in the element, I want to extract the values of the 8 other elements at this point.
    Thanks
    Dze

    Sorry I didn't understand you well. To use only arrays, you'll need 3D arrays, as you can see in the example attached. I've made two variants, one with your method (don't know if there's an easyer one) and one with the method I think is easyer, after that, you can search in the 3D array easyer that in the array of clusters of arrays (uff...). If I misanderstood you again, please let me know.
    Hope this helps
    Attachments:
    arrayclusterarray.llb ‏50 KB

  • Saving data from 1d array of cluster of 2 elements: HP 8752 driver

    I'm using the following driver to communicate with my HP 8720C Network Analyzer
    http://sine.ni.com/apps/utf8/niid_web_display.down​load_page?p_id_guid=E3B19B3E9092659CE034080020E748​...
    ...So far I've easily been able to use the "collect and display data" vi, except for saving data. All I want to be able to do is save the data from a single sweep in spreadsheet format. Displaying the data is no problem, which I can then print, however, the output data file is a mess. The VI is rather complicated, and I can't figure out how to save the data in a nice pair of columns of numerical values.
    The VI's output data is in the format of a 1 dimensional array of clusters of 2 elements (ie the x-y values). I would've thought it would be trivial to do this, since this is the standard format for data for the classic X-Y graph. So far, I haven't been able to come up with anything. Any ideas?
    Thanks,
    Spence

    Feed the array of clusters into a for loop with autoindexing enabled (the default). Inside the loop use the Unbundle primitive to extract X and Y for one point. Use Build Array to make a two-element array from X and Y. Wire this array out of the for loop and you will have a two dimensional array with two columns and as many rows as there are elements in the array of points.
    Lynn

  • Unable to plot 1-D array with a cluster of 2 elements on an XY graph

    I'm Unable to plot a 1-D array with a cluster of 2 elements on an XY graph. The data appears at the input to the graph but nothing is plotted. I'm trying to plot a line connecting each point generated.
    Solved!
    Go to Solution.
    Attachments:
    TEST11.vi ‏13 KB

    Chuck,
    0. Do not post VIs with infinite loops! Change the True constant to a control.  One of the regular participants on these Forums has commented that using the Abort button to stop a VI is like using a tree to stop a car.  It works, but may have undesired consequences!
    1. Use a shift register on the For loop also.
    2. Inserting into an empty array leaves you with an empty array.  Initialize the array outside the loop to a size greater or equal to the maximum size you will be using.  Then use Replace Array Subest inside the loop.
    3. Just make an array of the cluster of points.  No need for the extra cluster.
    Lynn
    Attachments:
    TEST11.2.vi ‏11 KB

  • Add element to array of cluster

    I have an array of cluster. Cluster contains two elements. How to add an element in cluster at run time on the second position efficiently? In other words dont want another copy of cluster which contains three elements and copy the original two elements plus the new element. 
    Original array of cluster lets say has two element Temp1 and Pressure 1.
    Need to add another element in cluster and now the array of cluster will be Temp1, Volt1 and Pressure 1. So Volt 1 is added to all cluster elements at second order throughout the array of clusters programatically. 
    CLD,CTD
    Attachments:
    TestAddElementToCluster.vi ‏10 KB

    It is unclear from your original post what the problem you need to solve actually is.  Are you trying to create a user interface?  Do you need to dynamically add arbitrary data to a data set, or is it a fixed set of functionality that can be dynamically changed in predetermined ways?
    Having done it, I will recommend you not try the scripting and subpanels approach.  There are almost always better ways.
    Remember that your data structures do not need to mirror your user interface.  If you were trying to display the temperature, voltage, and pressure data to the user, a multicolumn listbox may be more appropriate than a raw cluster in an array.  Internally, this would allow you to maintain the temperature, voltage, and pressure as separate arrays and only display the ones you want in the listbox.
    Please give us a more information on the problem so we can help you with an easier solution.
    This account is no longer active. Contact ShadesOfGray for current posts and information.

  • Add elelment by element in an array of cluster

    Hi All,
    I have a problem in extracting data from array of cluster to a single cluster. Please have a look at the attachment.I have found the solution but it consumes lot of memory because of shif registers andi am using this many places which is loading to nearly 100% in RT. Please provide an better alternative solution.
    Attachments:
    Array of Clusters.JPG ‏153 KB

    AutoTEC wrote:
    Hi,
    No i am almost at the end of coding . If i change the entire architecture affects. Only problem is this logic consumes more time. Pls any other idea...
    Standard situation if a propper data management is not done before coding OR  lead to the wrong architekture.
    Do you use type definitions? Help a lot to avoid the horror of optimizing the datastructure.
    Since it is much faster to rebuild a cluster by indexing the elements from your cluster of arrays than generating a cluster  of arrays from an array of cluster (Puh!) 
    AND you have timing problems I see only two solutions : Faster hardware or a reorganisation of your data.
    So change the datasturcture , create a subvi 'IndexMyData2Cluster' and whereever you indexed the array of cluster  replace it with that vi.
    Or run both structures in parrallel (BRRR, race conditions, inconsistent data , uuuaaahhh)
    Greetings from Germany
    Henrik
    LV since v3.1
    “ground” is a convenient fantasy
    '˙˙˙˙uıɐƃɐ lɐıp puɐ °06 ǝuoɥd ɹnoʎ uɹnʇ ǝsɐǝld 'ʎɹɐuıƃɐɯı sı pǝlɐıp ǝʌɐɥ noʎ ɹǝqɯnu ǝɥʇ'

  • Use of Write Key VI with an array of cluster

    Hi,
    I wanted to use an array of clusters to define some configuration parameters for an application. Unfortunately, "Write Key VI" doesn't support the cluster type. Has anybody modified this function ("Write Key VI") to support cluster and array of cluster? If not, any clue to keep it as simple as possible?
    My clusters include boolean, path, U32 and string.
    Thank you,
    Olivier 
    Solved!
    Go to Solution.

    OD wrote:
    Couldn't log to this website. Any alternative ?
    Sure see this Nugget.
    I have links for other methods included but the Nugget does exactly what you are asking to do. I wrote th Nugget to entertain other developers, but in the end is serves as an example why you may want to find another approach. You'll understand what I mean once you look at that Nugget.
    Parapharisng from Jurrasic Park "Just because could do something does not mean we should."
    Ben
    Ben Rayner
    I am currently active on.. MainStream Preppers
    Rayner's Ridge is under construction

  • Array of cluster of arbitary type

    Hi all,
    Is it possible to generate an array of cluster with the following characteristic?
    1. each element cluster in the array will be of different type
    2. depending on the code, each element could be a different data type at different time.  For example, the cluster at array[0] will be a string when the user input is one, and array[0] will be a U16 if the user input is two.  The index for a particular datatype is arbitary.
    Let me know.  I am trying to write a subvi that will get an array of U16 convert the array to an array of cluster with string, U16, double, single, U32, etc.
    Yik
    Kudos and Accepted as Solution are welcome!
    Solved!
    Go to Solution.

    That would work great.  Thanks!
    Yik
    Kudos and Accepted as Solution are welcome!

  • How is cluster of 5 elements converted to spreadsheet?

    I have a bundle output as a Cluster of 5 elements.  The cluster is displayed on the front panel.  I desire to convert that to write that information to a spreadsheet that can be opened with Excel.
    Please email me at:  [email protected]

    Hi DocNord,
    easiest would be to create a tab seperated textfile of your values: Unbundle the elements, convert them to text with tabs between the single elements and write it to a txt-file.
    More hints:
    - When all elements are of the same type you can/should use an array instead of a cluster.
    - There are functions to write spreadsheet files directly from 1D/2D arrays.
    - There's a function to convert a cluster (of elements of same type) to an array (and also vice versa).
    Best regards,
    GerdW
    CLAD, using 2009SP1 + LV2011SP1 + LV2014SP1 on WinXP+Win7+cRIO
    Kudos are welcome

Maybe you are looking for

  • Itunes locks up computer when I try to burn songs in itunes

    i had to have this imac's original optical cd burner replaced with a  MATSHITA DVD-R   UJ-85J: at an authorized apple location due to it would not eject discs.  I also had them replace the HD with a new  WDC WD10EALX-009BA0  1TB drive plus the increa

  • Compiling java classes into dll

    Hi, Just trying to find out is there anyway I can compile the java classes into dll? If I am to use JNI and C++, will the dll compiled be able to work well in a platform that does not have JVM? Thank you.

  • Add Fields in CUP Request - SAP GRC Access Control 5.3

    Dear Friends, I am wondering on how to add fields value in CUP (Compliant User Provisioning) SAP GRC AC 5.3. Currently i'm leading 9 SAP Security Coordinators in Indonesia and i want to create Performance Metrics on how long the CUP Requests is proce

  • PC Suite Restore SMS incorrect order

    Every time I have restored my sms's to same or different phone, it has messed up the order of them. when I check the details, the date is correct still, but the order they are listed in for the message inbox are totally off. I get some text messages

  • Imovie 10.0 keeps crashing on OS 10.9

    imovie 10.0 keeps crashing on OS 10.9 error code is: Logical CPU:     0 Error Code:      0x02000148 Trap Number:     133