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.
-
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
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: 8589934590Shouldn'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 IFIf 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: cDAQ3Mod1Name 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
-
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.
-
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.* *.
-
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?