How to change 'untitled' in 'write to measurement file' block
Hello, when i use the write to measurement file function I can open up the data file as a txt. The data is shown in columns just like i want, but i want to change the column titles from Untitled1, Untitled2 etc... to something else. I dont see how to do this.
Thanks
- Dan
Here is the only way I can figure, and this is using the Set Dynamic Data Attributes express vi. Basically, I have 5 channels setup under a task in MAX, and since I'm not using the DAQ Assistant express vi (which, btw, can't access an existing task, as it only selects channels to create a new task), my tasknames don't get bundled in that nice little "Dynamic Data" wire. Hence the Untitled column headers in what is written, and unnamed signals anywhere else its used. Its a shame that we have such a convenient way to write a measurement file, but DAQread.vi is unable to output dynamic data.
This is the only way I could think of to make it work; It's real simple, but looks real messy in the midst of my rat's nest of wires and vi's. For every single channel you want to name, it seems you will need a separate instance of this Set Dynamic Data Attributes.
Attachments:
Signal Attributes.JPG 38 KB
Similar Messages
-
I'm using LV8.5.1
I would pull your save data loop to it's own loop then make it event driven like I did in the example. This is just an example and there are probably ways to make the code better and faster but I am just trying to give you an example that we can build on. I am not reall sure what you itterations was for other than to give your loop enough time to save. By seperating the two loops the save no longer depends on the data acquisition loop.
Tim
Johnson Controls
Holland Michigan
Attachments:
Parts.vi 61 KB -
Hi,
i would like to know one thing about the write to measurement file. Can i put the proper header at each column in write to measurement file (.lvm) ? and how can i do for it ? Could you show me a way to make it ?
i am looking forward your kindly reply.
thank you so much ..
best regard,
roxyHi Mike,
Thank you very much for your help. It works .
By the way, i would like to ask you about setting time interval. In the pic, X_Value column is for time column
i would like to ask that when i use the write to measurement file, there got the x column that show time inside the excel file. In this column, i would like to set the time interval at every 210ms .The data may come in every msec but i just want to record the data at every 210ms . for example, 210ms-420ms-630ms ..etc. how can i set it ?
One more thing .. can i do it in graph as well ?
i am looking forward your kindly reply.
Thank you for your time.
Best Regard,
Roxy -
Quickie: Write to measurement file VI, how to create new file?
I am using the write to measurement file express VI in my code and I have wired into it a control that sets the location to save the measurement file
The only problem is the measurement file has to exist first!! I cant for example, from the front panel, click the browse directory box, navigate to a folder and type in a name for the file. It just says file not found! Its like the file directory control is opening a file to save to, rather than creating a new file in that location
How can I solve this?
Solved!
Go to Solution.Project attached
If I go in browse options what do i do? Just chose new and existing files?
Attachments:
engine.zip 119 KB -
The .lvm file generated by the Write to Measurement File Express VI includes column heading titles for the y values, but they are a default value of "untitled". See attached example of a sample file when opened in Excel, the values in question are highlighted. Is there a way to specify the column titles when the file is written?
This is a similar question to this posting, which received a work around response to use the Write to Spreadsheet File.vi, rather than a solution when using this VI.
Message Edited by Hightop Raven on 05-02-2007 03:37 PM
Attachments:
column_titles.gif 13 KBSorry for the late reply. I was out of the office Friday.
You can do it, but the code can get rather ugly. Under the hood, the dynamic data type (the dark blue wire) is an array of waveforms. In your case, the scalar values you convert to a dynamic data type are being converted to an array of waveforms, each waveform having one element. You have two options.
Explicitly convert your scalars to one-element waveforms (t0=0, dt=1) and add the title before conversion to a dynamic data type.
Convert your dynamic data type to an array of waveforms and loop through them to add the column labels. The conversion blocks are in the Signal Manipulation Express palette.
I would recommend 2, since it is the easiest to add. It is also the easiest to run only on the first iteration. Just put a case selector around the loop, wire the selection to the While loop iterator, and set the case containing the label code to 0. The default case simply passes through the dynamic data.
My apologies for not including a screen shot. I am in the process of upgrading my machine and can't run LabVIEW. If you need one, let me know and I can post one tomorrow.
This account is no longer active. Contact ShadesOfGray for current posts and information. -
Samples number is not properly set with VI Express Write To Measurement File
Hello,
I have a strange problem with the VI Express Write To Measurement File.
When I generate the .lvm file the samples number for each channel is equal to 1
instead of 34 !
So when I use the VI Express / Input / Generate an arbitrary signal and I want to import
the generated signal... only one point (the first one) is imported...
I can manualy fix it by changing samples number in the lvm file using a text editor but that's a (very) dirty hack !
Here is an example of the generated LVM file
LabVIEW Measurement
Writer_Version 0.92
Reader_Version 1
Separator Tab
Multi_Headings No
X_Columns One
Time_Pref Absolute
Operator scls
Date 2008/04/12
Time 10:35:58,322057
***End_of_Header***
Channels 2
Samples 1 1
Date 2008/04/12 2008/04/12
Time 10:35:58,323057 10:35:58,323057
X_Dimension Time Time
X0 0.0000000000000000E+0 0.0000000000000000E+0
Delta_X 1.000000 1.000000
***End_of_Header***
X_Value Untitled Untitled 1 Comment
0.000000 0.000000 20.000000
0.082000 10.000000 20.000000
0.182000 10.000000 25.000000
0.282000 20.000000 25.000000
0.382000 20.000000 30.000000
0.482000 30.000000 30.000000
0.582000 30.000000 35.000000
0.682000 40.000000 35.000000
0.782000 40.000000 40.000000
0.882000 50.000000 40.000000
0.982000 50.000000 45.000000
1.082000 60.000000 45.000000
1.182000 60.000000 50.000000
1.282000 70.000000 50.000000
1.382000 70.000000 55.000000
1.482000 80.000000 55.000000
1.582000 80.000000 60.000000
1.682000 90.000000 60.000000
1.782000 90.000000 65.000000
1.882000 100.000000 65.000000
1.982000 100.000000 70.000000
2.082000 110.000000 70.000000
2.182000 110.000000 75.000000
2.282000 120.000000 75.000000
2.382000 120.000000 80.000000
2.482000 130.000000 80.000000
2.582000 130.000000 85.000000
2.682000 140.000000 85.000000
2.782000 140.000000 90.000000
2.882000 150.000000 90.000000
2.982000 150.000000 95.000000
3.082000 160.000000 95.000000
3.182000 160.000000 100.000000
3.282000 170.000000 100.000000
PS : I also post my problem at
http://forums.lavag.org/Strange-behaviour-of-VI-Express-Write-LVM-t10570.html&gopid=44101#entry44101
Attachments:
generate_step_lvm.vi 119 KBIf I use the "one header per segment" option I get the following LVM file (see below)
But the problem is same !
I can't import this file in VI Express / Input / Generate Abitrary Signal (I only get one row... the first one)
I see three solutions :
- VI Express Write LVM has a bug ?
- I don't know how to use this VI Express correctly !
- VI Express / Input / Generate Abitrary Signal has a bug ?
LabVIEW Measurement
Writer_Version 0.92
Reader_Version 1
Separator Tab
Multi_Headings Yes
X_Columns One
Time_Pref Absolute
Operator scls
Date 2008/04/12
Time 16:38:37,578
***End_of_Header***
Channels 2
Samples 1 1
Date 2008/04/12 2008/04/12
Time 16:38:37,592999 16:38:37,592999
X_Dimension Time Time
X0 0.0000000000000000E+0 0.0000000000000000E+0
Delta_X 1.000000 1.000000
***End_of_Header***
X_Value Untitled Untitled 1 Comment
0.000000 0.000000 20.000000
Channels 2
Samples 1 1
Date 2008/04/12 2008/04/12
Time 16:38:37,717 16:38:37,717
X_Dimension Time Time
X0 1.3899993896484375E-1 1.3899993896484375E-1
Delta_X 1.000000 1.000000
***End_of_Header***
X_Value Untitled Untitled 1 Comment
0.139000 10.000000 20.000000
Channels 2
Samples 1 1
Date 2008/04/12 2008/04/12
Time 16:38:37,739999 16:38:37,739999
X_Dimension Time Time
X0 1.6199970245361328E-1 1.6199970245361328E-1
Delta_X 1.000000 1.000000
***End_of_Header***
X_Value Untitled Untitled 1 Comment
0.162000 10.000000 25.000000
and so one ... -
Write to Measurement file wil not write data daily
I have been using the Write To Measurement File express VI to record daily values. The express VI is no longer saving daily files or is checking for file size. WTF. Does anyone have a more bullet proof way of saving data daily with a single header for the day?
Thanks,
MattMS UCD wrote:
Ravens Fan,
So to clarify, I meant local variable instead of shared variable. Shared variables will come into play when I construct the real-time embedded program on the cfp-2120 controller. Thanks for the clarification. So are you on the clock for all this?
Sometimes yes, sometimes no. Since today is a holiday, I'm off the clock.
Anyways, so if I need to have the user see the values on the front panel and also record the values later, how do you suggest one does such a thing other than writing an indicator and then making a local variable that is then recorded?
The local variable has nothing to do with recording the values later. It is just a way of accessing a control or indicator in more than one part of the program. If you used shared variables (and I think you would need to have the DSC module to have this functionality), you could write to the shared variable and have it set up to log its values to the Citadel database. It is a built-in method of logging that just requires configuration of the shared variable, no additional programming would be needed. Otherwise you will need to add the code to write to a log file like you are doing now.
The new/old mechanism for checking the date has brought the adequate functionality I was looking for- mainly new files for each day.
With respect to the race condition you mentioned, could a sequence structure be used to write the local variable to the output array? In essence, I would calculate the scaled values and then write them to the data array. Another solution could be a control in the last case that then is used to initiate a case structure in which the shared variables for the data acquisition iteration are then recorded in the output array.
A sequence structure (and a flat sequence is preferable to a stacked sequence for code readability and maintainability) would guaranteed that one section of code completes before another begins. However, it is still preferable to use wires. Wherever you are wiring to a local variable, just send the wire to the border of the while loop. Feed the wire from that tunnel to the build array function and eliminate the local variable that you are reading there. Your case structure in a while loop is really just functioning like a stacked sequence structure. Every iteration of the while loop executes the next case in the case structure. If you are sequencing through the data values in the same order that you are building them into an array outside of the loop, you could actually build the array element by element inside each case structure and use a shift register on that array to carry the data from one iteration of the while loop to the next. Then once you while loop is done, the array has already been built. If by chance you are acquiring the data in a different order then you want to build it into and array, then the array functions could get much more complicated inside the case structures. But you could initialize the whole array before the case structure, and use replace array subset to replace each specific element as you acquire it.
I am interested in the producer/consumer arrangement you speak of. Do you have an example you could send me that shows this operating?
Go to File then New.... Look under frameworks, design patterns, and Producer/Consumer Design pattern (Data). Also search the forum for producer/consumer and I'm sure you'll see plenty of examples.
As for the Time Signal controls being located in the Labview abyss, what can I say? Every learning experience has a few bugs. ; - ) If the Time Signals are constants what effects on the time in the chart will this have?
Since the time controls are way off, I assume that the program user will never actually go out into the space of the front panel to find them and change them during the execution of the code. (I am also assuming that those controls never get changed programmatically by writing to a local variable or property node or they are not part of the connectory pane where this VI is called as a subVI in another one that passes in a time stamp on every call.) If they never change, then they are effectively constant. Changing them into constants would clean up the code and make it slightly more efficient, but would not appear to execute any differently.
Thanks for helping this novice out!
Regards,
Matt -
"write to measurement file" specify column names
I'm using "Write to measurement file" VI to create a TDMS file from 2 and possiby more data sources. Currenty the columns are titled "Untitled", "Untitled1", etc. I would like to specify column names. Can anyone point me to an example or tell me how to do this?
Thanks,
RonHi,
I've done some project with TDMS a few times and you can wire the column names (channel names) to the VI. See attachement
Kind regards,
- Bjorn -
Have fun using LabVIEW... and if you like my answer, please pay me back in Kudo's
LabVIEW 5.1 - LabVIEW 2012
Attachments:
TDMS.JPG 24 KB -
Formatting the time stamp in "Write LabVIEW Measurement File"
When I use the "Write LabVIEW Measurement File" vi to write data
the files first column contains the number of seconds since the staart of the file
How can I get the computer date and time or at least the time HH:MMS???
Tom
PS, And how can I put some sensible label on each columns in the file?Tom,
The vi I'm attaching demonstrates how to use the computer system time for the timestamp on your LVM file. It takes a reading from the DAQ Assistant and applies a system time stamp. It's in version 7.1, but let me know if you need it in version 7.0.
As for inserting meaningful column headers, you won't be able to do that with the express vi, but you could use the regular file i/o vis to create a file like that is similar to a LVM file, but is a little more customizeable and can be formatted however you like. The express vi is meant to be a quick solution, but does not offer all the versatility of the vis on the palette. I hope this helps you out. Have a good one, Tom!
Tyler S
Attachments:
LVM_timestamp_7_1[1].vi 265 KB -
Write to measurement file timing
I am trying to make a VI that allows the user to turn on and name channels through the front panel. After the user has configured the channels, they can push a button and record voltages from the enabled channels and save them using the "Write to Measurement File".vi. I would like the user to be able to record a measurement file that is consistent in length each time they push the button...in this case, 5 seconds of data. The current VI doesn't appear to be doing this...everytime I push the record button, the data gets recorded for 0.045 seconds. Apparently I must be missing something as this isn't behaving how I expected it to. See attached VI.
Attachments:
Select Channel rev 3.vi 244 KBIt waits 5 seconds then saves the last 10 samples. Because that is the way you programmed it. The while loop returns only the data from the last iteration.
Two ways to do what you want: 1. Read 5 seconds * 200 samples/second = 1000 samples. No loop required.
2. Read 10 samples at a time and accumulate the data until you have 5 seconds of data. To avoid memory reallocations the way to do this is to Initialize an array with 1000 elements outside the loop. Wire it to a shift register. Inside the loop Read the samples and use Replace Array Subset to put the new data into the initialized array. Wire the output of the shift register to the file VI.
You generally should not put any time consuming code inside an event structure. Read the caveats in the detailed help for the event structure. Consider a Producer/Consumer architecture.
Lynn -
Remove milliseconds from timestamp in write to measurement file
I'm logging data to a binary tdms file using the write to measurement file express vi. I choose my x axis to be time and see that an absolute timestamp is written with millisecond precision. I only need to-the-second precision. Is there anyway to change this default behavior?
Attachments:
remove.png 10 KB
remove.png 10 KBWhere is your data coming from. When I open the express vi to look, it looks like the time format doesn't determine that, but the
signal data cluster coming in does. So where does the data come from, and in what form?
Putnam
Certified LabVIEW Developer
Senior Test Engineer
Currently using LV 6.1-LabVIEW 2012, RT8.5
LabVIEW Champion -
Hello,
I have to measure my spectrometer values every thirty seconds and have to write it to a text file. I need to create a new text file each time for writing my values. So i used the write to measurement File option for doing this. The problem is that this block measures the values only every one minute, but i need to measure the values every thirty seconds. Could any one help me out with this ?
Thanks in advance
SwarnaSome issues you have for the timing part of your code:
1. Use the Time has Elapsed output of the Elapsed Time VI. It already does the comparison for you, so just use it.
2. I'm pretty sure you want the Write Measurement File to be in the TRUE case.
3. Use the AutoReset option on the Elapsed Time VI.
But those do not point to a data point every 1 minute. How long does it take your instrument to do the sweep before sending it to you? I have seen some take a long time, so it is worth looking into. -
Write To Measurement File, Comment
I have tried to use the Comment input on a Write To Measurement File vi and the results are not what I expected. What I want to do is place one line of text appended after a block of data to form an easily seen break between the data sets. The data is triggered in a stream prior to being sent to the Write To Measurement File. I thought that the description on the Comment would do this but I get the comment not only between the blocks but also interspersed within the data stream in a seemingly random manner. What am I missing in the behavior of the Comment input?
Dear ITElearner,
thank you so much for your post on our webforum. You are able to add a comment each time you write to the lvm file; this comment will be added to the first row you are writing. I created an example; 10 samples are generated, comment is added, this is written to file, another 10 samples are generated new comment is added and written to file.
Is this what you are trying to achieve? Else I would recommend to create a small example of your problem.
Best regards,
Martijn S
Applications Engineer
NI Netherlands
Attachments:
commentlvm.jpg 120 KB
Untitled 1.vi 112 KB -
Write to measurement file Express VI - TDMS file has separate "channels" for each data point
Im trying to write a VI to measure and record thermocouple data from an Advantech T/C DAQ. Using the "DAQNavi" express VI provided by them, connected to the Write to Measurement File express VI, I have managed to read in the data and create a TDMS file. However, when I open the TDMS file, each time step of temperature data is entered as a separate channel, instead of all of the channel data going into one tab. Obviously this is a huge problem as it creates hundreds of tabs after just a few seconds. Any thoughts as to what causes this?
Hi glibby,
How did you configure the Write to Measurement Express VI? Please select "one header only".
If you have your own timestamps to write, please merge your timestamp channel and measurement channels with "Merge Signals" before passing them to the Write to Measurement.
Best Regards,
Mavis -
Write to Measurement File Express VI: file name prompt
I am using the Write to Measurement File express VI to write some data.
Even though I have not selected "ask user to choose file" and have set a default filename, the vi still prompts me to choose a file. I tried restarting my pc and it used the default filename the first time and then went back to prompting me. I have set the default to overwrite my existing file each time, so I don't understand why I keep being prompted. If you look in the express VI the "ask only once" radio button is selected and greyed out, but I don't know why; I didn't select it.
(I have the express VI in a while loop and want it to write a line of data to the file each time the loop executes, so it's not convenient to be prompted for the filename each time)
I'm sure this is my own silly fault but would appreciate some advice
Thanks, klara
Attachments:
2PDCal_USB1v3.01.vi 441 KBI'd suggest changing the mechanical action of your stop button from "Switch When Pressed" to "Latch When Released". This might be the only problem. If you didn't manually change your stop button back to false before running again, your loop would run once and stop, and you'd immediately see the file dialog from the Format Into File function. Changing the mechanical action would prevent you from needing to manually change it back to false before the next run.
Message Edited by Jeff B on 02-07-2008 08:48 AM
Maybe you are looking for
-
Indexing accentuated word in oracle text
Hello. I have some problems understanding how oracle text works with accentuated words. I want to store french words encoded in utf8, for example the french word libération which is encoded as 'lib©ration'(utf8 conversion) in the database.(note that
-
Restricting Payment Method For Customers
Dear gurus!!! My client has the following requirement in which he desires that 1- Can we receive incoming payments from customers with different payment methods. In our assignment field we give the cheque number or deposit slip etc... which is freely
-
Hi Am having trouble with InDesign - My font size small arrow buttons (up and down) in top dock have decided not to work anymore - Can still change font size manually but I would rather they worked. Any ideas? Cheers
-
Work scheduling view-material master
Hi, wht is meant by lot size depenedent parameters and lot size independent parametrs? how to use that data in manufacturing industry? pls advise.
-
Error message Re: Systems File "AppleUSBEthernetHost.kext"
On 10-3-14 I received this error message: The system extension "/System/Library/Extensions/AppleUSBEthernetHost.kext" was installed improperly and cannot be used. Please try reinstalling it, or contact the product's vendor for an update. I looked at