Scaling TDMS files

Hi,
Has anybody got a good example VI for scaling TDMS files. I've capured data using the VI attached and I want to scale this data to a new file using scaling slope and intercept derived from a calibration VI. I thought this would be straight forward but when I followed the example NI provide it does not change anything but the scaling information writen to the TDMS file properties. The data remains the same.
Thank you
Dan
Donners
Solved!
Go to Solution.
Attachments:
Data Aquisition Block Diagram.JPG ‏133 KB

Hi,
I've attached the signal conditioning VI that tries to scale the data from the 'Raw Data' group of the 'Raw Data' file to a 'Scaled Raw Data' group in a new 'Filtered Data' TDMS file. For some reason it saves a 'Raw Data' group in the new 'Filtered Data' file, that shows the new scale in the properties but the values have not been changed from the source 'Raw Data' file. I know that's a bit of a tongue twister, but I've attached the new 'Filtered Data' TDMS file that might illustrate what I'm talking about.
Thank you,
Dan
Donners
Attachments:
Signal_Conditioning_VI.JPG ‏471 KB

Similar Messages

  • What VI can read raw data from a TDMS file with scaling information entered?

    I would like to use scaling with my TDMS files so that the end user will
    only see engineering unit values, however, within my Labview application, I
    want to retrieve the raw data.  Is there a way to read the raw data using
    one of the Vi's in Labview?

    The scaling information in a TDMS file is stored as properties of the channel.  One trick (that I haven't mastered yet) is you can change the properties of the TDMS file (set properties) and set all the scales to have a offset of 0 and a scale of 1.  This will apply a scale that has the engineering units be the same as the raw values.  Then you can read the data like normal and you'll get the raw values.
    There are several issues to be aware of, the first is changing the scale and forgetting to change it back, or some how modifying the data to be incorrect units and not knowing it.  For this reason I'd recommend making a copy of the TDMS file to a temporary location to make the modifications to the properties, read it, then delete the temporary TDMS file when you are done.  
    This is the only way I know of to get the raw readings from a scaled TDMS channel.  
    Unofficial Forum Rules and Guidelines - Hooovahh - LabVIEW Overlord
    If 10 out of 10 experts in any field say something is bad, you should probably take their opinion seriously.

  • Reducing TDMS file size?

    Hello,
    I'm streaming analogue data acquired at 32 kS/s to disk in 32768 data point writes using TDMS Write.vi .
    A while back I feel that I saw an article about reducing the size of the TDMS files with some tricks. I think one of them might have been not writing unused high significance bits(?).
    I can't find that article now and I"m wondering if anyone had suggestions for reducing file size? Right now its about 0.25 MB/s. This is manageable, but it would be nice to reduce this if it were easily possible.
    Thanks in advance,
    Frenk

    Hello,
    Hmmm... I've run into an unexpected problem. I'd like to scale the unscaled data from DAQmx for some calculations during the data collection, but it isn't scaling the way I would have expected.
    My range is +/-10V and the largest unscaled numbers for data filling that range are very roughly about +/-125000. I would have expected them to approach 2^31 (one bit for sign)!!  How can one scale this data?
    Also, my saved TDMS file doesn't seem to have the information that "Cont Acq&Graph Voltage - Graph Unscaled Data from File (TDMS).vi" needs to scale it.
    Regarding I16, my data is unusual in that it contains a signal of interest that is about 80 dB below the stimuli that are also in the measurement. For that reason I need the full I32 to avoid excessive quantization error in the signal of interest.
    Thanks again!
    Frenk

  • Saving FFT PSD waveform to TDMS file maintaining x-axis scale

    Hi all,
    I'm having trouble saving a Power Spectral Density waveform to a TDMS file because the method I'm using is losing the x-axis (frequency) scaling. The only way I can get it to save is extracting the magnitude from the waveform and saving that in the TDMS file. This loses all the frequency information.
    Does anyone know how I can save the PSD information in a TDMS file or failing that, any type of file?
    Thank you,
    Donners
    Solved!
    Go to Solution.
    Attachments:
    PSDs Frequency 2.JPG ‏89 KB
    Data Calculations TDMS 4.zip ‏120 KB
    Filtered Data.zip ‏240 KB

    Hi,
    As my understanding, you are trying to log the PSD to "Power Spectral Density" channel, but you do it wrong with double array. TDMS write don't accept cluster as input, but accept waveform.  I have updated the VI and the PSD in TDMS file viewed as
    Attachments:
    Data Calculations TDMS 4.vi ‏177 KB

  • Error reading TDMS file with inconsiste​nd dt

    Hello all,
    I would like to ask your help to understand how to read a TDMS file which I am opening and closing based on a user input.  As a result the data in the TDMS file does not have a consistent time step, which may be causing my problem, but I really don't know.  I keep getting the error 2501, that I have an invalid reference. 
    Or, if I continue and bypass the error, the extract portion VI gives me an error stating that I need to define an integer multiple of dt.
    I am not sure how to solve the first point as I have the reference wired directly to the read TDMS vi.
    I have attached a screen shot of the error and the portion of the VI with the offending error (it is the code connected to the read TDMS read vi).
    My goad is to extract a portion of the data to do calculations on and display a result to the user.
    thanks for any comments.
    A. Lopez
    Attachments:
    error-2501.JPG ‏198 KB

    I think you open multiple times the same TDMS file, you should open it before the while loop. And I don't see a close tdms function...
    Also check for errors on the open TDMS function.
    Ton
    Message Edited by TonP on 02-14-2007 07:45 AM
    Free Code Capture Tool! Version 2.1.3 with comments, web-upload, back-save and snippets!
    Nederlandse LabVIEW user groep www.lvug.nl
    My LabVIEW Ideas
    LabVIEW, programming like it should be!

  • How can I open a tdms file and replace a subset of data then save that change without re-writing the entire file again?

    Hi all,
    Is it possible to open a tdms file and make a small change an an array subset then save the file without having to save the whole dataset as a different file with a new name? That is to say, is there something similar to "Save" in MS Word rather than "Save As"... I only want to change a 1D array of four data points in a file of 7M data points.
    I am not sure if this make sense? Any help is apreciated.
    Thanks,
    Jack

    You can use either one, but for your application, I would use the synchronous.  It requires far less setup.  When you open the file, set both enable asynchronous and disable buffering to FALSE to enable you to use synchronous with arbitrary data sizes.
    Attached code is LabVIEW 2011.
    This account is no longer active. Contact ShadesOfGray for current posts and information.
    Attachments:
    UpdateTDMS.zip ‏20 KB

  • How to get the last data point from a TDM file in LabVIEW?

    Hello,
    I am using LabVIEW to analyze some rather large TDM files, and I need a way to get only the last data point.  So far, the only way I have been able to accomplish this is by reading the entire file.  Is there a property in the TDM file or a function in LabVIEW that will allow me to get the index of the last item in a channel?  
    Thanks!
    Christina

    Do you want to avoid reading whole file and want to be able to reach or get the index of last value of channel? is there any specific reason? I am not sure you could do it without loading the whole file. But the easiest way would be just to use array functions "array size" would give you the index of last element. 
    -Nilesh
    Kudos are (always) welcome for the good post. :-)

  • Newly written tdm/tdms file not found

    Hi,
    I am trying to save some simple thermocouple data to a tdm/tdms file.  I run my vi and it seems to work just fine. I am using the NI 9213 getting started example as a basis and have added tdms open, tdms set properties, tdms write, and tdms close.  I can see the data streaming on the waveform chart but when I hit stop and go look for the saved file I can't seem to find it.  What am I doing wrong?
    Thank you
    Solved!
    Go to Solution.

    SRamirez wrote:
    I set it to create.  When I run it once for a new folder it runs just fine but if I try again I get error 6.
    You are specifying a folder?  You should be giving a full file path (like c:\temp\blah.tdms).  What you might want to do is build a file name based on the data/time.  This way you won't have to worry about overwriting files and what not.
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines
    Attachments:
    Build File Name.png ‏9 KB

  • How to compare signals from two different .tdms files?

    i'm developing a lie detection system in labview.so inorder for that i need to compare the threshold physiological signals from the .tdms file with the signals i acquire continuelsy from the subject for each question asked.i use respiration monitor and heart beat monitor together with the sensorDAQ to acuire the physiological signals.so which are the function i should make use of?i have the following toolkits
    1. advanced signal processing toolkit
    2. adaptive filter toolkit
    3. digital filter design toolkit
    4. biomedical toolkit
    please give me advise on this.
    thank you.
    Solved!
    Go to Solution.

    Lie detector systems (polygraphs) generally work by looking at the physiological responses to the own subjects baseline, and do this in real-time.  You could use a file that represents the stored "baseline" for the subject, but the overall environment, circumstances, general state of the subject, etc. may not be similar enough to easily see subtle changes.
    From the stored file, you might determine a set of parameters or thresholds that indicate "normal, relaxed" for each signal.  You could read the file into your LabVIEW program, process each channel, and save these parameters.  Then when you have the new data, you can read the new data file in and process it in a similar way and then determine whether the parameters are outside the limits that you established for a "lie".
    You may get more responses to this question if posted in the Biomedical User Group
    Visit the NI Biomedical User Group at:
    www.ni.com/biomedusers

  • How do I select more then one channel to view in tdms file viewer graph panel

    I have a TDMS file that I can view with the labview 2013 TDMS file viewer and I can select one signal out of 15 signals to view on the graph panel. however I would like be able to look at 2 or 3 signals
    on the same graph but can't seem to be able to select more then one signal at a time. Is there a way to select more then one to view?  

    I've modified the TDMS viewer in the past to allow selecting multple channels.  It's a little bit of a pain because the tree control in the viewer only allows you to select one item.  You have to edit the tree to allow multiple items.  Now your selection is an array instead of a scalar.  This means the rest of the code has to be updated, and the references to the tree in subVIs need to be updated.  Not impossible but it takes some time.  Alternativly open it in Excel with the free add-in then you can select the two columns you want and insert a graph.  Not as simple for the user but using Excel, which users should be familiar with might mean users need less training on data files.
    Unofficial Forum Rules and Guidelines - Hooovahh - LabVIEW Overlord
    If 10 out of 10 experts in any field say something is bad, you should probably take their opinion seriously.

  • How does DIADEM import TDMS files? How gets every channel his number and groupindex? How can I determine which channel has which groupindex and number?

    I store different channels in a TDMS file.
    I like to have a time channel at the first position with group index 1 and number 1.
    When I read the TDMS file with DIADEM the time channel (Float64) is on a differernt position, and the channels are not sorted alphabetically.
    Here are my questions:
    How does DIADEM import TDMS files?
    How gets every channel his number and groupindex?
    How can I determine which channel has which groupindex and number?
    Best regards
    Joerg

    Hi Jörg,
    i suppose that you´re programme whose create the *.tdms file is writing on false position. Try to create datas with timechannel on first indes in diadem, then save it and then open it again. you see that all is correct. So please tell me what programm in what version do you use and please attache it here.
    Did you use the library for creating *.tdms files like in the link ?
    http://zone.ni.com/devzone/cda/tut/p/id/6471
    Here you find the gtdms_8.x.zip - when you extract it and opened the *.llb you find vi´s for all functions e.g. writing 2d array of strings to *.tdms file
    when you open the subvi´s then you see how created and writing datas/structure to *.tdms files. Because *.tdms is binary you can´t see structure with open it in editor.
    When you don´t have Labview you can use the 30 days test of current version 8.5 under following link
    german version download link
    https://lumen.ni.com/nicif/d/lveval/content.xhtml
    english version download link
    https://lumen.ni.com/nicif/us/lveval/content.xhtml
    Hope it helps
    Best Regards

  • .tdm file storage vi's slow editing vi's

    I am developing software using Labview 8.5 and have recently added some file storage vi's for the .tdm format for use in DIAdem 10.2.  Upon using the open storage, set file properties, write channel group, write channel, and close storage vi's, the editing has become extremely slow - for any operation I try to perform there is a 10-15seconds delay before it occurs.  If I remove the .tdm vi's from my diagram then the editing goes back to normal and changes/operations occur almost instantaneously as expected.  My project is not large as far as I am concerned (Front panel - 121k, block diagram=1538k, code=0.2k, data=957k, total=2617k, total vi size on disk=389k)
    I saw a similar post to the .tdm storage vi's causing this to occur back in 2005 and was supposed to have  been on the fix list but it does not appear that it has 3 years later.  I am sure many others are using these vi's so not sure what I may have done differently to cause the editing to slow down so much.  
    Anyone with ideas and fix would be greatly appreciated as I cannot afford to sit around 10-15 seconds for every step of my developement.

    Yes, sometimes Storage VIs are slow. But They are Express VIs, supplying the easy configuration for users. If you feel they are too slow, I suggest that you can use TDMS files instead.

  • Tdms-files: Is it possible to prevent LabVIEW and DIAdem from creating .tdms_index files?

    Hello,
    is it possible to prevent LabVIEW and DIAdem from creating .tdms_index files when opening/creating/editing a .tdms file?
    I think I have no benefit from the .tdms_index files because our applications create a lot of little .tdms-files (repeat measurements). With the additional .tdms_index files we have unnecessary memory consumption and it takes longer for Windows to open the containing folder. Also it´s confusing when searching for a certain file.
    Best Regards
    Daniel
    Solved!
    Go to Solution.

    Hi Baui,
    I'm afraid there's a direct way to disable creating .tdms_index file now from LabVIEW and DIAdem. You can use TDMS Advacend API in LabVIEW, which doesn't create any index file, or you can just make some simple programming and delete the .tdms_index file after closing the TDMS file. 
    This is a request for a long time, we'll consider to add this feature for TDMS in future releases.
    Yongqing Ye
    NI R&D

  • I write digital port by 'DAQmx Configure Logging.vi​' and receive TDMS file with 8 boolean channels. How can I write to 1 integer channel?

    Hello!
    I want to write 1 digital port from PXI-6536 with streaming to TDMS file.
    I'm writing by 'DAQmx Configure Logging.vi' and become TDMS file with 8 boolean channels.
    How can I write to 1integer channel?
    Attachments:
    1.JPG ‏27 KB

    Hey Atrina,
    The actual data stored on disk is just the raw data (that is, a byte per sample in your case).  It's really just a matter of how that data is being represented in LabVIEW whenever you read back the TDMS file.
    I'm not sure if there is a better way to do this, but here is a way to accomplish what you're wanting:
    Read back the TDMS file as a digital waveform.  Then there's a conversion function in LabVIEW called DWDT Digital to Binary.  This function will convert that set of digital channels into the "port format" that you're wanting.  I've attached an example of what I mean.
    Note: When looking at this VI, there are a few things that the downgrade process did to the VI that I would not recommend for these TDMS files.  It added a 1.0 constant on the TDMS Open function, and it set "disable buffering" on the TDMS Open function to false; you can get rid of both of those constants.
    Message Edited by AndrewMc on 01-27-2010 11:21 AM
    Thanks,
    Andy McRorie
    NI R&D
    Attachments:
    digitalconvert.vi ‏13 KB

  • How to store data (in tdm files)

    I'm looking for advice on how to store data in tdm/tdx files.
    The main challenge is like this: At regular time intervals there is new data available (say every 10 minutes there are 10 minutes of new data available). All data is time based. So every ten minutes I may create a new tdm/tdx file containing this data segment. However, when i want to analyze the data i dont necessarily want to view 10 minutes of data from all channels, but maybe 20 hours of data from one particular channel.
    The way I've achieved this so far is to manually load each 10 minute segment of this particular channel and then add these parts together. This is both time consuming and cumbersome. Is there a better way to do this that I've simply not discovered yet? Is there a better way to store data to simplify this process?
    One solution is of course to save data from several 10-minute frames in one file, but seeing as there is a never ending supply of data i cant simply save all data in one giant file, it has to be split up at some point, and the problem will still remain.
    One factor to have in mind here is that this is rather large amounts of data (maybe 10GB each day), so the option to simply load all the data into memory goes out the window rather quickly.
    Feel free to ask if I've not made myself very clear

    Hi salte,
    If your test ever ended, and if you had LabVIEW 8.20 or higher, I would recommend using a TDMS file, which handles data appeands flawlessly.  DIAdem 10.1 now also does data reduction and index windowing during file loading for TDM / TDMS / DataPlugin files, so that you could easily load out only the part of the file you wanted to look at.  But since you describe your data acquisition as never stopping and amassing 10 GB per day, I agree that it would be impractical to use only 1 data file.  So we are stuck with some number of files which each contain a part of your measurement.  This approach can have advantages, since you can save operational properties for each "buffer" such as average value, dominant frequency, ambient room temperature, etc., and later on you can use the DataFinder to query out only the data buffers which meet specific conditions based on these properties.  The problem remains to load and assemble data based on multiple files.  This is an old problem in DIAdem, and one for which I have an efficient and I hope satisfactory workaround application.  It does what you describe already doing in the minimum amount of time and with the minimum amount of user interaction, and it can be highly parametrized to suit your particular situation.  The ideal way to start the application would be as part of a ResultsList custom menu.  This would enable you to query out the buffers you wanted, highlight those rows in the ResultsList, right-click and choose your custom menu, and WHAM! the selected buffers for your queried channel(s) are automatically appended together in the DataPortal.  Launching from a ResultsList custom menu would mean that you could skip the file dialog and just read out the data sources directly from the ResultsList selection.
    Let me know what you think,
    Brad Turpin
    DIAdem Product Support Engineer
    National Instruments
    Attachments:
    Importing Data from Multiple DataPlugin Files.zip ‏198 KB

Maybe you are looking for

  • Fixing your iPhone 5 Battery Life - Once and for all!

    Greetings  folks - I'll get right into it here: 1. Let your iphone 5 drain completely out. 2. BUT, Once it gets on 1% however, you must go into: Settings>General>Rest>Reset All Settings. (note: This will not ruin ANY of your personal info the phone.

  • Acrobat Pro 7.0 does not install on Windows 7, how can I get a version that does?

    I recently downloaded and tried installing the non-activation version of Adobe Acrobat Pro 7.0 on my Windows 7 PC.  After researching the installation error I read some posts that Acrobat 7.0 does not install on Windows 7.  What are my options?

  • Sound through TV Speakers?

    I connect my MacBook Pro to my TV, but now the sound won't come through the TV speakers. Before when I had this problem, I would click Display, then click Detect Display and it would fix, but that doesn't work anymore. What else can I try?

  • IDVD quit unexpectedly

    What would cause my IDVD to not launch. When I went from the original OS to Panther is when I first notice this problem. I did have to install a external Lacie DVD burner as the internal burner is no longer working. I was just at the Mac store with m

  • Oracle 9i.2.0.1

    Dear All i have server database 9i.2.0.1 the server is very slow and i didn't know the reason because their is no enterprise manager to show me what is the problem so what i can do to know this problem can i use enterprise manager console but what it