Read a selected channel of a tdms file

Hello !
I have a very simple question, but I don't get the answer.
I
have a TDMS file structured has shown in the attachment. I want to get
the data of the channel called "piezo". Depending of the file I read,
the channel called "piezo" may be the first one or the third one....or another one.
Do you have any idee ?
Thanks
Attachments:
Immagine.PNG ‏6 KB

Hi BILLBOULE...,
http://forums.ni.com/ni/board/message?board.id=170&view=by_date_ascending&message.id=300123#M300123 
see the attached example to this post.
Hope it helps.
Mike

Similar Messages

  • Read Measurement file does not read the first channel of my TDMS file

    When I try to read a TDMS file with the Read Measurement File express VI, the first channel of the data is not there.  When I open the file up in excel the channel exists

    Even I have the same doubt  regarding Labview plss help me reading the Excel file from 23rd row and the graph should be drawn between 1st column and 8th column ,  from 23rd row . Here is the sample data.
    Attachments:
    Book1.xlsx ‏204 KB

  • Script to auto zero channels in a TDM file with multiple channel groups

    Hi friends,
    I am trying to process some data but am having trouble modifying a script to autozero channels across multiple channel groups. The following script works to zero channels across one group. I use this script to process data in a TDM file with only one channel group. I need to be able to zero channels across multiple groups (5 groups). But the amount of groups I will have may change so I might need an option to enter the amount of groups or have the script determine the amount of groups in my TDM file. 
    Here is the code I use to zero the data. Thanks in advance for your help!
    Sub UserDlg_Select
    Call USERDLGINIT()
    USERDLGCAPTION="Auto Zero Channel Based on Specified Points "
    USERDLGTXT(5)="Number of points to Average"
    USERDLGCOMMAND(5)="t1"
    Call USERDLGOPEN()
    End Sub
    Call UserDlg_Select()
    T2="1-"&T1
    For I= 1 To ChnNoMax 'For all data channels except time
    T4=CHNNAME(I) 'Create string for Channel name (I)
    T3=ChnDim(T4) 'Create text variable for channel dimension
    STATSEL(6)="Yes" 'Arith mean
    STATCLIPCOPY="yes"
    STATCLIPVALUE="No"
    Call StatBlockCalc("Channel",T2,T4) 'Calculate Stats for Channel (I)
    'Subtract Mean of first (T1) points for Channel (I)
    Call FormulaCalc("Ch('temp1') := CH('"&T4&"') - statarithmean")
    CHNCOMMENT("temp1")=("Channel zeroed over first "&T1)+"pts" 'Add Comment
    ChnDim("temp1")=T3 'Add Dimension
    CHNNAME("temp1")=T4+"-Z" 'Save updated data with -Z
    'Delete Stat Channels
    Call CHNDEL("ArithmeticMean")
    Call CHNDEL("Sum")
    Next 'End For loop
     

    Hi rvillalta319,
    Sounds like you'll need to adapt your code to use both a for loop and some implementation of the GroupCount variable (or ChannelGroups.Count) as seen here:
    http://zone.ni.com/reference/en-XX/help/370858K-01/varoff/groupcount/
     

  • 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

  • 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.

  • Channel count limit for tdm files

    Hello,
    I have not been able to find any documentation listing the maximum number of groups, channels/group for tdm files.  Does anyone know these values, or a document that lists them??

    Hello CAN_man,
    There is a DevZone document on the topic of TDMS files that can be found at the following link: TDMS File Format Internal Structure
    The document contains the answer to your question, and states that:
    "Each file can contain an unlimited number of groups, and each group can contain an unlimited number of channels."
    Please let me know whether you have more questions!
    Kameralina
    Ask NI (ni.com/ask)
    Search The KnowledgeBase
    NI Developer Zone
    Measure It. Fix It. ni.com/greenengineering/
    NI Vision ni.com/vision/

  • Filter data in tdms file

    I am needing to look at select data of a TDMS file in an analyze portion of a stat machine. The VI is to test both AC and DC motors. I am getting 18 different reading from a power analyzer. I am writting these to a TDMS file for ease of passing through the rest of the states. In the "Analyze" state I am wanting to look at  13 of readings an compare them to see is they are within tollerence. I will then use this check to highlight the reading green or red.
    My questions are:
    Should I even have an 'Analyze' state or should I do the analysis in the state that the reading is taken?
    If I do use the 'Analyze' state is pulling the data from the TDMS file the best way to do this?
    Also, if you see any other possible errors in the vi, please let me know. This is my first experience with LabView and it is steep learing curve.
    Thanks, 
    Attachments:
    AC TEST PANEL.vi ‏524 KB

    Since you are using a State machine approach, I would suggest to keep that idea and add the Analyze state to keep the code organized. Plus, you can add a shift register to pass around the acquired data which will be more efficient than reading from the TDMS file.
    For future reference, when using the state machine while you analyze, log, etc...you are forcing sequential execution and loosing time that can be used for hardware I/O. When this becomes a concern you can implement the following structure. Keep up the good work
    Alejandro | Academic Program Engineer | National Instruments

  • Concatonat​e TDMS file data to live data

    I am monitoring 20 or 30 channels at any given time and storing all data to a TDMS file (LV 8.6). At any given time we are only displaying 3 channels on a waveform chart. The chart displays 5 minutes of data. say for the first minute I am viewing channels 1, 2, & 3. Then I switch over to 4 - 6 but in addition to the live data coming in I want to see what has happened since the test started a minute ago (or up to 5 minutes ago), as if I had been viewing these three channels all along.
    What I have tried is to read the stored data from the TDMS file, copy the most recent data (up to 15K samples = 5 min at 50Hz). Then I take the live acquired waveforms, break out the array of  Y values, concatonate with the Y values from file and rebuild the wavform. But it isn't workin. Seems like it should but I don't know what is wrong.
    Any ideas?
    Lawrence M. David Jr.
    Certified LabVIEW Architect
    cell: 516.819.9711
    http://www.aleconsultants.com
    [email protected]
    Attachments:
    extendedWaveforms.vi ‏15 KB

    well I tried using the "ignore attributes" property, both above the 'value' property, and below (top down ordering - didn't make any difference). Also I verified that the data is being concatonated; normally we are adding one point to the plot every 50mS, when we toggle to a different set of channels, the Y component of the waveform is not an array of one element but of (in this shot anyway) over 9000 elements. the screne seems to flash with a block of data and then the plot resumes filling 1 point at a time from the present time stamp. Maybe I can set an attribute of the x axis to be an earlier timestamp based on the number of points in the Y array?
    Lawrence M. David Jr.
    Certified LabVIEW Architect
    cell: 516.819.9711
    http://www.aleconsultants.com
    [email protected]
    Attachments:
    propertyNode.JPG ‏11 KB
    probes.JPG ‏45 KB

  • How to concatenate TDM files in DiaDem

    I've seen the post on how to concatenate CSV files on DiaDem ... but how do you concatenate TDM files together?
    I'm surprised this functionality isn't embedded into the software as it is a fairly common task, and the script is likely beyond most user's ability to maintain.
    Solved!
    Go to Solution.

    Hi Brad,
    Maybe I didnt explain myself that well, my fault. The case is:
     As a result of acquired data post analysis with LabVIEW, I am logging into TDMS files 1.7GB of data. It's a file of 15 columns (properties) each of 1,080,000 rows ( properties values).
    If I decide saving all the data into one file ( resulting into a 1.7GB file), DIAdem cannot load it into Data Portal. The program gets frozen even after waiting for 30mins.
    If I save the data into multiple files (i.e like I tried last time in 3 files of around 500MB and one around 270MB) the 3 first files are loaded into data portal but when the loading of the 270MB is under way, DIAdem gives me an indexing error (sorry cant recall right now what is says exactly).
    In the case of saving into multiple files, apparently I want to concatenate the TDMS file channels so I can i.e graph plots for the whole duration of my test.  A reappending VBScipt you kindly provided me, works fine with any file I used that was not as massive as the ones I am dealing now. When I am using it with the above mentioned files, in the end I just get a time channel and none of the channels in my TDMS files.  
    Using a VBScipt that requires that I load my data into Data Portal before running it, it's simply impossible as DIAdem stalls as I mentioned above.
    Sorry, I havent been using scipting before so I might be missing something here. As it goes for those changes you suggested. i will give it a  try but could you please confirm which scipt we are talking about now exactly? As for concatenate files, the code Herbert provided in that thread is great but it does nor address exactly my problem.
    Thanks,
    Panos
    Message Edited by Saloutios on 06-14-2010 04:27 AM

  • 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.

  • Read multiple tdms files

    Two questions:
    1) how can i rename the different signals in the tdms file? Now they are names "untitled x". I am looking for an elegant solution, because i record about 200 different Signals.
    2) Is there an "easy way"  to select, read and concatenate multiple TDMS files to show them in a graph?

    I had a similar goal with grouping plots and  rearranging them on the X-axis, so I put together this pretty quickly to search a range of TDMS files for a specific channel, should be able to adapt it pretty easy to suit your needs, once you manage to rename your channels.
    Attachments:
    Record Grouping.vi ‏48 KB

  • DIAdem 2012 displaying all channels as "Noname" for .tdm files

    Hi
    I'm experiencing a problem with DIAdem 2012 when opening .tdm files. 
    I've reinstalled all NI software components, and still the problem remains.
    All channels are displayed as "Noname", "Noname_1" etc.
    Even worse, all values are displayed as either "0" or "NOVALUE".
    See attached image for example.
    The attached image is displaying the "Example.tdm" file which is opened by default when starting DIAdem.
    When opening the "Example.csv" file the problem is not there (channels have names such as "Time", "Velocity" and values).
    So what could be the problem related to reading/loading .tdm files? (Note, as I said, I just reinstalled DIAdem from scratch)
    Attachments:
    DIAdem_noname.jpg ‏270 KB

    Hi salte,
    "TDM_DataPlugin" is the default name that the ASCII DataPlugin Wizard would give to a DataPlugin you or someone else created to open files with a "*.tdm" file extension.  I'm betting that's where it came from-- the behavior you see in the Data Portal is also consistent with loading a TDM file as if it were an ASCII file.  DIAdem does not install this DataPlugin, and I highly recommend that you remove it.
    To remove the DataPlugin, go to the DataPlugin dialog, select the the "TDM_DataPlugin" in the list, and hit the red "X" icon or the <Delete> key on your keyboard.  To get to this dialog first start in either the NAVIGATOR or SCRIPT panel, then depending on your DIAdem version select one of the following two menu paths:
    "Settings >> Options >> Extensions >> DataPlugins..."
    "Settings >> Extensions >> DataPlugins..."
    Once you've removed the "TDM_DataPlugin", you will again be able to drag TDM files from the NAVIGATOR tree view into the Data Portal.
    Brad Turpin
    DIAdem Product Support Engineer
    National Instruments

  • 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

  • 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

  • Reading TDMS files in Matlab

    I am trying to read TDMS files directly into Matlab using the NI  nilibddc.dll. I have read most of the posts on here but still have a problem...
    Within Matlab I can open and read a file and get the data but I cant find anything that tells me what the sample interval (between samples) is for a particular file. I guess its in the header somewhere but how do I access it?
    I cant find anything that tells what function to use to get it from the header.
    In fact i cant find anyhting that tells me what the functions are in the DLL.
    I tried opening the CHM help file, this has a list of all the functions but when you click on one in the contents it reports 'the address is not valid'. It seems the link is borken somehow in the help file (this is on XP)!
    any help gratefully receieved!
    mike

    hi mike,
    if your data is stored in form of waveforms, this information can be retrieved from the channel:
    Entity
    Property
    Data type
    Description
    tdm_channel
    wf_xname
    string
    Name of the x-channel of the waveform
    tdm_channel
    wf_xunit_string
    string
    Unit text of the x-channel
    tdm_channel
    wf_start_time
    time
    Time stamp for the waveform
    tdm_channel
    wf_start_offset
    double
    Starting offset (to be added to the time stamp)
    tdm_channel
    wf_increment
    double
    Increment
    tdm_channel
    wf_samples
    long
    Number of samples in one shot (needed by LabVIEW when concatenating
    more consecutive shots). This property is used by DIAdem and DataFinder to decide whether the tdm_channel is a waveform (wf_samples > 0) or not (wf_samples = 0, or not existing).
    tdm_channel
    wf_time_pref
    string
    (enum: "absolute" or "relative") Additional information for LabVIEW to
    determine if the x-channel is treated as time (absolute) or as index
    (relative). (not available in LVM)

Maybe you are looking for