Channel playback TDMS property

Hello

I managed to read the property of length of channel DDHN at the level of channel using the name of the property "NI_ChannelLength". Although in the file, it is called "length".

I wonder if there's a mysterious name for the property of "Strings" which gives the number of channels in each group at the level of the group.

In the worst case, I might have to write and then read back. But I wanted to keep TDMS file clean and not double field that already exists!

Any comments?

See you soon

Waris K

Only use the TDMS list content and provide the name of the group.  It returns the names (and therefor the number) of channels in this group.

Tags: NI Software

Similar Questions

  • How do you find the name of the Group and channel your TDMS file name?

    How do you find the name of the Group and channel your TDMS file name?

    Nevermind, I've used the file viewer.

  • How ENUM as TDMS property of reading / writing?

    LV2103, Win7

    Old road to LabVIEW, new brand tiara.

    I need to convert a structure of arbitrary complexity in properties, suitable for writing in a PDM file, in such a way that they are recoverable and (hopefully) to be readable by humans, such as whn, the file is loaded in tiara.

    I have most of it works fine, but I have trouble with ENUMs.

    An ENUM can be converted to a VARIANT very well, but that the alternative of writing to a file produced error-68007.

    A simple test shows this:

    The encoding process is quite simple - given a generic control Ref, just look at its CLASS ID.

    If the ID is one of those basic, just get its value in as a variant and add the berries of NAME and OWNERSHIP:

    If the element is a CLUSTER, then the controls that it contains and make them one by one:

    If the control is a TABLE, it is a little more difficult.  Since there is no way to obtain a reference to an arbitrary reference, you must use a reference to an item that you have.  To use it, you must show one and the same element.  This code is that, while restoring the original notice:

    HOWEVER

    ENUM, as I said earlier, converted to VARIANT very well, but TDMS will not accept it.

    Here's a technique that works, sort of:

    By converting the enum in an I32, you get the digital value from its current location and can put that into a Variant.

    During playback, the digital value will set the ENUM control correctly, so that's good.

    The problem is in the tiara, the property will look like:

    Whatever_Engine_Cycle 2

    Even if this is true and read back OK, he doesn't tell the user what kind of cycle is.

    The point of ENUMS was to put names to specific numbers.

    I tried to convert the variant to a STRING instead of an I32, but occurs 1057 (IIRC): "cannot convert a Variant to the specified type.

    A similar problem exists for controls TEXT RING - although they will go through the process, without error, what appears is a number.

    Any ideas to make the DIAdem display the string value of the ENUM, instead of a number?

    The error that says no "recognized by this version of LabVIEW" - is LV2015 to be more smart about it?

    Nice post clear! We will try for an elegant solution.  I think you're halfway there!

    You know the ID of class its an enum so get the credits of enum

    This may not work with the type defs, I leave that to you.  Rings and rings of text can be manipulated simillar

    Edit: Of course move up the chain to the variant

  • Time Stamp Offset end playback TDMS

    I am having a problem with a PDM file playback and display a graphic in the shape of wave in LabVIEW.  My table of waveform display always the time with a negative offset of 18 000 samples.

    Who make it simple, let's say I'm sampling to 1000 samples per second, and I connect my PDM data. When I read that PDM and visualize my graphic waveform data, the chart display data read from DDHN 18 seconds earlier that the registered wf_start_time, set a deadline for the PDM.  If my wf_start_time is 08:00:20.000 AM 12/02/2014, then my waveform displays a start time of 08:00:02.000 AM 12/02/2014.  Even if I taste 4000 samples per second, my start time is disabled starting 4.5 seconds earlier.

    I put my Xscale.offset = wf_start_time it reads properly, but the start time on the waveform table is always false.

    Because I'm dealing with large TDMS files (500 MB +), I sometimes decimate the data to view it due to problems of memory. Here, this problem occurs again.  If I decimate the data to display only 1 out of every 10 data points, this offset is more changing by a factor of 10 x. ranging from 18 seconds to 180 seconds.

    Is this some sort of gap of stamp UTC/system clock time or something else?

    Looks like that I thought about it.  I copy - paste a previous screw waveform graph on a whim, I created a graph of waveform from scratch, and the lag problem has been eliminated.  It must have been an option or shift created in there that I couldn't see or modify.  But it's good now.

  • Double channel playback

    Hi guys,.

    I need help on registration data dual channel.

    I can view and record a single string every time, but I need to show them at the same time.

    Thank you!

    Rookie

    EDIT: didn't realize that he had asked it many times... (OP), I suggest you follow the answers/help/advice given previously

  • Sample quantity sample DAQmx channel property Node substitute in LabVIEW when = 1

    [cross posted from LAVA] 

    Problem:
    LabVIEW seems to be the substitution of a value of 1 to a value of 2 for the node property DAQmx Sample Quantity.Sample per channel for a continuous acquisition mode.

    Information:
    I have a task created in MAX (version 4.4.0f1).
    When I updated To Read samples 1 the task runs successfully in MAX.
    When I read the task in LabVIEW (8.5), the property node Sample Quantity.Sample per channel (i.e. the samples to read) is converted to a value of 2.
    If the value is greater or equal to 2 to the MAX, then the Sample Quantity.Sample by channel in LabVIEW property node returns the correct value.

    I get the same problem with a real or simulated device.

    Question:
    Is this desired behavior?

    Side note:
    If N samples (acquisition of buffer finish) is selected samples To Read cannot be 1 because it causes an error 200077 - must greater than or equal to 2.
    But no error will occur when the task is saved as a continuous (continuous buffer acquisition). I don't know if this is related. The error generated is:
    Error-200077 occurred to the DAQ Assistant
    Possible reasons:
    Measurements: Requested value is not supported for this property value.
    Property: SampQuant.SampPerChan
    You asked: 1
    Valid values begin with: 2
    Valid values ending with: 8589934590

    Shouldn't

    Hi JG,.

    Remember that the number of samples (one associated with DAQmx sync settings) is not relevant for continuous acquisition.  To read a sample at the same time, you simply specify this in your DAQmx playback function.  When you configure MAX to read an excerpt, it makes this same functionality automatically.

    You will not be able to get the value of another property node as the value is converted as soon as the channel is created (the value non-sous the constraint is not stored anywhere by the driver).  It should not be a need to this value in your code, if you want to read a sample to a schedule the DAQmx read simple example of function.  The amount of samples by reading is not part of the task itself, but is defined when running as an input to the function read DAQmx.

    You get the error message indicates that your device supports should not single-point HW timed - I would have probably asking which device you were using.

  • How to import a single channel of different TDMS files?

    Hello

    I have several tdms files which have the same structure of channel (ch1 - chx). Each channel by tdms file has a stored value.

    I would like to see the same channel, lets say ch1, of EVERY file of PDM, in order to have a responsible for all the tdms files 2D field

    the data portal.

    If I drag a channel from a PDM file, loaded on the data portal, I see a value of course. I would like to drag lets say five

    channels at once to get a 2D-plot in the display section.

    Is there an easy way to solve the problem?

    Thank you in advcance

    Hi Norick_17,

    I think you could do that with advanced search in the browser of DIAdem.

    Configure advanced as the attached picture. You can configure the search, so that you find ch1 on all files. Also, the select the minimum/maximum/average as additional search criteria.

    In the list of results, you will see a Channel.Maximum column. You can select this column and drag & drop it into your data portal. Each maximum value will be concatenated to a string.

    Best regards, Stephan

  • Problem of memory TDMS on cRIO-9035 (Linux RT)

    Hello

    I was unable to move in a kind of memory problem that I am experiencing during written TDMS. I write in the PDM file, use of the RAM on my RT goal grows regularly. I thought it was due to some kind of indexing that happens with very large TDMS files so I am currently split my files at the level of the 50 MB mark. When the maximum size is reached I empty and close the file, and start a new one. So when I stop recording I rinse and close the bottle. However, use of the RAM of my continuing to increase anything.

    I've read about it and I've seen repeated references by using the NI_MinimumBufferSize property as a possible solution. I've implemented this, but it doesn't seem to do the trick either.

    Everyone has been able to overcome this problem, or I'll have to return to the spreadsheet of construction VI (please no.).

    I've included a simple set of VI that initializes an array of 16 x 2500 to simulate values 2500 for 16 channels and writes this table to classify every 50ms. In my real application table 16 x 2500 are 16 channels playback at 50 kHz readings of my analog input module. The "RT_TDMSMemoryIssue.vi" would be the main VI launch.

    Thank you

    Corey

    It's probably the file system buffering of i/o to files in memory. Depending on your version of LabVIEW, LinuxRT reports of memory can include these as "used" memory buffers when they are actually available to applications on request.

    There is a document which deals with it here: http://digital.ni.com/public.nsf/allkb/AC6200D19D23C61586257C8D006E6DC2?OpenDocument

    My main question is do you ever see a memory error output? What happpens if you expect that the memory fills up?

    I expect that you will see the behavior where the memory appears to fill, but any work properly!

  • Extract information from channel of filegroup

    Hi all

    I want to make a repeat operation on a channel of a large number of multichannel files.

    As a simplified example lets say I want to calculate the max value in channel 1 for each file in a group. I would then like to place these values in the line of a new channel to a new file. Does anyone have an example of similar file I could change or suggestions on how to do it? I work with TDMS files.

    Thank you

    Mark

    I had a very similar approach, so here is another example where it is useful.  This example loop through all the files in a specified directory, and if the file is a PDM, it loads the first string in the file and it calculates the maximum value.

    DIM MyFiles, iCount, channel
    CALL Data.Root.Clear)
    SET the channels is Data.Root.ChannelGroups.Add ("computed values"). Channels.Add ("Maximum", DataTypeFloat64)

    MyFiles = DirListGet ("C:\Program Files (x 86) \National Instruments\DIAdem 2011\Examples\Data", "*." ") (' * ', 'filename', 'FullFilenames')
    IF IsArray (MyFiles) THEN
    FOR iCount = LBound (MyFiles) to UBound (MyFiles)
    IF UCase (NameSplit (MyFiles (iCount), "E")) = 'TDMS"THEN
    CALL DataFileLoadSel (MyFiles (iCount), "[1] / [1]")
    Channel.Values(Channel.Size+1) = CHC ("calculated Values / [2]", 2)
    CALL Data.Root.ChannelGroups ("computed values"). Channels.Remove (2)
    END IF
    NEXT
    END IF

    If you can calculate the maximum value of the channel (or any property you are interested in tracking) during the acquisition and recording of the file, you need to store this entity to a PDM channel property.  This would allow you to execute queries against the property on all of your files, and then very quickly load results as a channel in the data portal.

    I hope this helps...

  • Adding channel CJCS virtual/physical to existing task

    Hello

    I have a NI 9211 TC modules that I use to acquire temperatures through LabVIEW 2013 SP1, I have an existing task created in MAX.  I want to follow the CJC temperature sensor as well.  After looking at several positions, I discovered how to assign the physical channel hidden in a virtual channel in LabVIEW and then view the CJC value.  BTW...  Where there is under good which shows how to do this for the cDAQ series... find the 'AI Temp sensor built' is not clear (look under "analog EntrΘe, more").  But that part works now.

    -->, I want to add this channel CJC to my existing job, but I get an error.  See CJC1.vi

    Or, as an alternative, I would like to acquire the CJC temperature and acquire temperatures 8 other channels and then combine them somehow for display, recording, etc.

    Note: I want to keep the data in the format of the waveform, so they work as part of a broad data acquisition program that I have.  And I want to continue to use the existing task as it contains the calibrations (via the wizard of Calibration MAX).

    Here is the error that occurs when I run CJC2.vi with the active disabled code block.  (sometimes not is displayed after you press the Stop button)

    Error-200072 occurred at .vi:7050002 DAQmx Create Channel (I-temperature-built-in sensor)

    Possible reasons:

    Duplicate the layers in the list of physical channels are not supported by this unit.

    Channel name: _cDAQ3Mod1/_cjtemp
    Dual channel: cDAQ3Mod1/_cjtemp
    Physical channel: _cjtemp
    Feature: cDAQ3Mod1

    Name of the task: task of DAQ3

    Attached files:

    CJC1.VI<-- shows="" combined="" code="" and="" it="" throws="" the="">

    CJC2.VI<-- shows="" how="" i="" acquire="" and="" display="" data="" from="" 8-channel="">

    CJC3.VI<-- shows="" how="" the="" cjc="" temperature="" works="" by="">

    Now, how to combine the two?

    Thanks for the help,

    Derek

    Knowledge base seems to be a little confused right now because it only shows the node property for channel playback of strength. It's the correct property to read from a channel of CYC while you use it, but we must also set the CJC channel as an active channel first. The following snippet is the right way to do this in the context of this thread.

    Please note that you must use the built-in CJC source for that to be applicable.

  • Why the TDMS file is bigger that we should

    Hello

    I write data rate simultaneously two analog channels to TDMS file to sample 10 kHz using the capture of data OR PCI card - 6111 12-bit.

    Simply calculate:

    10000 samples per second x 12 bit x 2 channels is 240000 bits per second = 30 kbytes/s = 1.8 MB per minute.

    I have 766 seconds takes long recording, so it should be: 30 kbytes/s x 766 second = about 23 MB.

    But my TDMS file takes 123 MB! and I have problem with these large treatment TDMS files, for example I have no memory of enogh for analysis of FOIA. Where is the problem?

    Best regards

    Kacper

    DFGray,

    You're right, I wrote the values of voltage in volts as waveform (DBL) of DAQmx, but number DBL is 64-bit, that's why my files was so great.

    Now, I write not adjusted data represented as I16 (16-bit integer), and everything is ok.

    It is possible to further reduce the size of the file using property DAQmx Channel node - http://zone.ni.com/devzone/cda/tut/p/id/3697#toc1

    Kacper

  • DisplayName property

    Hello

    A small question about the properties...

    (1) I noticed that if I add a property with the name 'Unit' in LabVIEW to a TDMS file I can't delete it in tiara. It seems that it confuses it with the reservation of title "unit_string" (which has the 'Unit' DisplayName property) - I think it is a bug and not the intended behavior?

    (2) why is the property of "DisplayName" of a custom property is read-only?

    Kind regards

    Steve.

    Hi St3ve,

    If you go create TDMS files in LabVIEW and view them in DIAdem, THANKS to write unit information to the property 'Unit_String' using "TDMS property Set.vi" LabVIEW - this will avoid any confusion and frustration.

    It looks like the behavior of a 'Unit' property in the data portal is buggy since the handling in version 11.0 DIAdem unit, I had not noticed this before.  What version of DIAdem do you use?  The message box talk not being is not able to deal with information of the unit with the property 'Unit' seems intentional, but you should be able to delete the property interactively, which fails in tiara 2011.

    You can use the TOC header object to remove the unwanted a TDM file property, but as the so-called Yongqing TDMS file format does not support delete a property, making it much more difficult that you can't remove it from the data portal.  You can save the TDMS file in a TOC file, remove the unit, then save it to a TDMS file...

    Set TdmHdrObj = DataFileHeaderAccess ("C:\Example.tdm", "CT", False)

    Call TdmHdrObj.ChnPropDel ("[1] / [1] ', 'Unit'")

    Call TdmHdrObj.Save

    Brad Turpin

    Tiara Product Support Engineer

    National Instruments

  • Excerpt from several sections of tdms file times

    Hello

    I found an example VI to extract either a certain index point or time point x samples and then and create a smaller file of PDM.  I'm trying to modify it to do it several times at specific times in the file.

    The pretext is the following.  I'm recording 33 channels to 2700 Hz sampling frequency.  I can do this up to an hour or more.  Needless to say that this made for a HUGE data file.  I want to pass through and with a list of interested time (for example: 10, 20, 40, dry etc.) extracts the value of 7 seconds and do one more small file DDHN that we can now move on and do data analysis more on.

    It seems to work for the first data file, but it comes with a warning of 'End of file', then stops for the following files.  I enclose my VI for your convenience.

    Thank you.

    I guess that the error comes from reading of PDM. If read TDMS has no entry for group and Terminal channels, it will iterate channels per group. I think that you can solve the problem by offering the group entries and the channel for TDMS read.

  • File plate TDM

    Hello

    I use write to the file function to connect my values in real-time in the TOC file. I have roblem by naming the names of channel because TDM function ignore my channel names and use the out there without a keyword.

    Thank you

    Hi mimran,.

    You can specify the name of the channel in the configuration and other properties dialog box.

    If it doesn't work for you, would you please let us know what version of LabVIEW you use?

    Thank you

    Mavis

  • TDMS replace specific fields with the new string data

    Hello

    Wonder if someone could advise a more easy, more clean solution or I may end up making a big mess on my diagram!

    I use DaqmxConfigureLogging.vi to write data in the .tdms and this file everything works. Unfortunately, this vi affects physical names such as Dev1/ai0 channel names in Journal of root and group of tdms files.

    I would like to read individual fields where they are written and replace them with the names of channel. The location of these channel names is fixed on the tdms file.  However, I noticed using file i/o functions, such as file open/close/set position could not work, because these files do not seem to recognize the .tdms file. And it is not all fields tdms functions you want the value of the positions on sheets of root/channel files tdms and read fields desired as string data.

    Any suggestions? I can miss something quite simple!

    crossrulz wrote:

    k waris wrote:

    "In fact, it uses some names you give the channels and groups.

    I use Dev1 / ai0:15 connect all 16 channels. Unfortunately if using 'name to assign' entry will not do the job in my case!

    Of course, it will be.  Use a loop FOR with DAQmx channel create to create each channel and give them a name.

    Just to clarify what I meant here...

Maybe you are looking for

  • Equium A100-006 - download driver Wireless

    Hi allThe page for Wireless drivers for Toshiba Equium A100-006two broken links:https://Support1.toshiba-tro.de/Tedd-files2/0/wlesslan-20080924172257.htmlhttps://Support1.toshiba-tro.de/Tedd-files2/0/wlesslan-20070716135646.html They take me for:http

  • M40-110: error Power saver

    Hello world. I own a M40-110 Can someone pls help me with the following: Lately, I get the following error. "power saver fatal error occurred 0 x 0" any idea what this means? Also ever since that time, my computer starts very slowly. Splash screen ta

  • HP: Enter the password administrator or power on password

    Hello! Can you help me. Laptop is stuck on this screen. The key that I receive after you have entered the wrong password 3 times is 50921472. Please help thanks

  • Signature for the x 360 HP flow Edition

    Hi, does anyone know if the computer laptop HP 360 x flow signature edition has a touch screen? Moderators Note: this has been moved to the more appropriate more.* *.

  • Restore usbstor.inf

    OK, so I bought a new HP printer and I am trying to install it but it tells me my usbstor.inf file does not exist or has been deleted. I've searched and cannot find this file. How to restore the file so that I can install my printer?