NOVALUE in TDMS
Hi everybody,
I want to write a TDMS file that includes NOVALUES. Because of different datatypes for different channels these NOVALUES also have different definitions. In the former DAT format it is possible to specify the value that is used as NOVALUE in each channelheader. But for TDMS I only found the property “novaluekey” which tells if the channel contains NOVALUES or not. Unfortunately I don't get anything from the TDMS file format internal structure documentation or DIAdem Help.
So how can I set the NOVALUE definition in the TDMS file format? I want to write this file on my own and read it with DIAdem 2012.
And in addition: is there any documentation on the properties that can be interpreted by DIAdem (e.g. DIAdem can read the scaling properties that are only mentioned in the context of LabVIEW)?
Thanks
Cynthia
Hi Cynthia,
TDMS supports channel values being set to NoValue using the IEEE denormals for SGL (Float32) and DBL (Float64) data types. In LabVIEW, you can write a NoValue to a data channel by writing a "NaN" real number. You just plop down a DBL or SGL constant and type in "NaN" instead of 3.14 or any other real number. Then wire that orange "NaN" constant to an element in an array and send that array to a channel in the TDMS file.
On the property reading front, use any of the IEEE standard integer and real number data type, plus string and date/time. You'll need to also make sure to name the property with only letters (A-Z), numbers (0-9) and the underscore character ("_"), and you can't start the name with a number.
Brad Turpin
DIAdem Product Support Engineer
National Instruments
Similar Messages
-
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 KBHi 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 -
DIAdem version 2011 issue table displays "NoValue"
I have an issue with DIAdem 2011. I noticed the issue when switching from 2010 to 2011. The issue is that a table displaying a channel of strings displays a "NoValue" for the last value. I have attached a zipped file containing PDF's displaying the table created with 2010 vs 2011, the TDMS file, and the TDR file.
Has anyone else had this issue or am I doing something wrong?
Thanks,
Attachments:
DIADEM Table Issue.zip 44 KBHi Daniel,
We have now submitted CAR #443285 for this error, which will be evaluated and hopefully fixed for DIAdem 2014. I'm very sorry we dropped the ball for DIAdem 2012.
Brad Turpin
DIAdem Product Support Engineer
National Instruments -
Ich habe einige Fragen zum Header.
Ich möchte ein Programm in MATLAB umschreiben. Dieses konnte DIADEM 8 Daten in MATLAB einlesen. Im neuen DIADEM 9 wird jedoch ein anderes Speicherformat verwendet. Soweit ich den neuen Header entziffern kann, wird im Bereich <usi:include> die Datenlänge-, typ, offset,.. angegeben. In diesem Bereich sind jedoch mehr Datenblöcke als DIADEM Kanäle aufgelistet. Einige dieser Blöcke enthalten anscheinend die Daten aus den Kanälen andere werden als <flags external=...> verwendet.
Was bedeutet <flags external=...>? Wie erkenne ich, wo im tdx file meine Daten sind?Hallo Alexander,
die Dokumentation zum TDM Dateiformat ist in der Hilfe zu DIAdem 10.0 beschrieben.
Im Abschnitt 'Include Block' <usi:include> werden die Massendaten in der TDX-Datei definiert - Datentyp, Offset...
Die Verbindung des Kanals mit den Kanalwerten (Massendaten des Kanals) erfolgt in der ValueSequence der zugehörigen 'LocalColumns'. Dabei werden die Werte mit <values external="inc0"/> definiert . 'inc0' verweist dabei auf einen gleichnamigen Eintrag im Include Block.
Sind einige der Werte eines Kanals ungültig -NOVALUES- so wird dies durch sogenannte 'flags' signalisiert. Dabei handelt es sich um einen Vektor von Flaggen in dem gültige Werte mit '15' gekennzeichnet sind. Diese Flaggen werden ebenfalls in der TDX-Datei abgelegt. Somit erfolgt die definition analog zu den Werten mit <flags external='inc1'/> -
My G4 will not boot up in Target Disk Mode. I've restarted it with the T key pressed three times and it just ignores it and boots up as normal. I'm running 10.3.9 on a G4 at 350 mhz.
I'm puzzled.Hi-
Are you using an Apple wired keyboard? If not, could be the problem.
Try setting Startup Disk preferences to Firewire TDM, and restart from there. -
TDMS: is it possible to use sender and receiver client within the same SID
Hi all
I have a general question about TDMS: i always read that it is possible to refresh data from a productive system/client to a test system/client, e.g. PRD100 => DEV100. But is it also possible to refresh data from one sender-client to the receiver-client inside the same system using TDMS, e.g. DEV100 => DEV200.
i'm asking because if i start to build up a new client using tdms the first step is to build up the client using package "ERP Initial Package for Master Data & Customizing". This includes under point "data transfer" the step "lock the system" with teh following description:
Lock System
Activities
During data deletion in the receiver client, the tables are dropped. All clients in the system are affected by this procedure. Consequently, all users in all clients in the receiver system must be temporarily locked while the data deletion takes place.
The function for this activity locks only the current client. If the receiver system is a single client system, it is sufficient to execute the function. If, however, the receiver system is a multi-client system, the user in the other clients must be locked using standard means.
Anyone has any experience with this scenario inside the same system?
Regards
AdrianYou can run TDMS package on the same system and between different clients. However SAP don't recommend to run TDMS package on the same system.
There are 2 ways to delete data in receiver system: Array delete and drop insert.
You have to use Array Insert only which is usually very slow as it first select all the relevant entries from the tables in the target client and then drop it. So, it is slow.
Drop insert is much optimized and fast but the same can not be used in this use case.
That is the reason SAP don't recommend to have TDMS run in same system. -
Dear all!
I'm using USB-6009 device to adquire data from a physical channel. In the following vi, the number of samples to be adquired is set to 1000, with a 100Hz rate. Therefore, as I understand, the number of samples that should be read inside the while loop where DAQmx read is placed should be 10 for each iteration. However, I've tried to store this information in a TDMS file and I'm getting less number of samples as expected. I wouldn't like to lose any data.
I've read overthere that the USB-6009 is a software-timed device, so, can this be the reason of this anomaly? Moreover, if I analyze the adquired samples using DIAdem software, I see some samples are being repeated. In this case, am I overwriting some data and reading past values?
If I need to replace my data adquisition device with a hardware-timed one, which one should I get?
Thank you very much in advance,
Miren
Attachments:
USB6009_TDMS.vi 25 KBWhen you run the sample clock in "Continuous Samples" mode, the # of samples only determines the buffer size. This is outlined in the help for that function.
As a result, you have nothing pacing the internal loop: If there are samples available when it reaches the DAQmx Read, it passes out as many as are available in the buffer. You might get 1, 2, 100; it depends on how long the other operations in the loop take.
In general, DAQmx loops like this can be paced either by time or by # of samples. Looks like you want sample pacing: wire the number of samples you want to collect to the "# of samples per channel" input of the DAQmx read. Then the loop will wait at the daqmx read until that many samples are ready, and then it will proceed.
-Barrett
CLD -
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 KBI 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! -
Hi I am trying to connect my mba mid 2011 with an imac 27" 2011 with target display mode tdm. When I am using a thunderbolt cable nothing will work. When I use a minidisplay cable, both screens turn blue but eventually nothing happens. What is the problem
Your answer is likely in Target Display Mode: Frequently Asked Questions (FAQ) - Apple Support If you are familiar with this document, please re-read it and I suspect you may find something you either missed or are doing incorrectly.
-
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,
JackYou 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!
ChristinaDo 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. :-) -
Sales orders in TDMS company/time based reduction are outside the scope
Guys,
I have had some issues with TDMS wheras it didn't handle company codes without plants very well. That was fixed by SAP. But I have another problem now. If I do a company code and time based reduction, It doesn't seem to affect my sales orders in VBAK/VBUK as I would have expected. I was hoping it would only copy sales orders across that have a plant which is assigned to a company code that was specified in the company code based reduction scenario. That doesn't seem to be the case.
VBAK is now about one third of the size of the original table (number of records). But I see no logic behind the reduction. I can clearly see plenty of sales documents that have a time stamp way back from what I specified in my copy procedure and I can see others that have plant entries that should have been excluded from the copy as they do belong to different company codes than the ones I specified.
I was under the impression that TDMS would sort out the correct sales orders for me but somehow that doesn't seem to be happening. I have to investigate further as to what exactly it did bring across but just by looking at what's in the target system I can see plenty of "wrong" entries in there either with a date outside the scope or with a plant outside the scope.
I can also see that at least the first 10'000 entries in VBAK in the target system have a valid from and to date of 00.00.0000 which could explain why the time based reduction didn't work?
Did you have similar experiences with your copies? Do I have to do a more detailed reduction such as specifying tables/fields and values?
Thanks for any suggestions
Stefan
Edited by: Stefan Sinzig on Oct 3, 2011 4:57 AMThe reduction itself is not based on the date when the order was created but the logic enhances it to invoices and offers, basically the complete update process.
If you see data that definitely shouldn't be there I'd open an OSS call and let the support check what's wrong.
Markus -
Error 6 occurred at TDMS Open in TDMS
Hi,
I have a application that is using the TDMS VI's to generate a Logfile.
The application ran correctly for 12 days. (Each errors, and some parameters - every hours - was correctly written to my TDMS file).
Then, the following error occured :
Error 6 occurred at TDMS Open in TDMS - Write data SubVI V1.2.vi->D2XX MultiTester V1.5.vi
Possible reason(s):
LabVIEW: Generic file I/O error.
=========================
NI-488: I/O operation aborted.
I join my VI that manage the TDMS file.
The error seems to come from the VI "TDMS OPEN". The corresponding TDMS file is effectively at the specified path, and its content is OK (all expected infos are present). The file is called LogFile_0_1.TDMS.
Depending on the TDMS file size, the application automatically creates a new file. I tried to force that to get a new TDMS file (assuming that the active file was corrupted or blocked). A new TDMS file was created (LogFile_0_2.TDMS.) but only the first tab (root) was created. Then the same "Error 6 " was still present, exactly like before.
Do you think this problem can come from Windows?
Or does it come from my application? What is not optimal, is that this "TDMS - Write data SubVI V1.2.vi" is called about every second, and the "TDMS OPEN" function is called unconditionally (even if no modification on the TDMS file are needed).
How can we explain that this bug appears after about 12 days only?
I also join you the LogFile_0_1.TDMS that I converted to an Excel file, and the LogFile_0_2.TDMS that was not correctly created.
Thank you in advance for your support.
Michael
Solved!
Go to Solution.
Attachments:
LogFile_0_1.xlsx 560 KBMarcoMauri wrote:
My guess is that you forgot to close the TDMS file and each time your VI is called a reference is created.
It could be that after a week the maximum possible number of references was reached, and you got the error.
Regards,
Marco
Marco,
That's not just a guess, that is a very real possibility. And lets not forget the memory leaks from not closing references.
ALWAYS close ANY references you create. If you open a reference to a file, make sure you close it.
There are only two ways to tell somebody thanks: Kudos and Marked Solutions
Unofficial Forum Rules and Guidelines -
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
Maybe you are looking for
-
How to create ITS for a R/3 Transaction?
Hi All, I am new to ITS. Can somebody please let me know how to create a ITS for a R/3 transaction. I tried from SE80 but not able to get the result. I even checked in SICF. Whatever the service that I am created, it is not visible in SICF. Please he
-
MIR7 Park an not GR'd document with line item reference
Hi I have also left this message in the MM forum. Scenario 1 is how the system currently works, scenario 2 is what we want to achieve, so Parked, unreciepted document but would like the line item details to appear in MIR7 so we an trace it and report
-
Win 8 pro to win 8.1 pro on Imac mid 2011
Hi Community! I'm experiencing the same issue as this thread https://discussions.apple.com/message/23429321#23429321 But it's on my Imac mid 2011. I had windows 7, I upgraded with a windows 8 succesfully but when I want to update to 8.1 I have a blac
-
I had a crash on my computer and lost my paid PDF converter. How do I get it back on the repaired computer?
-
Import Schema in different tableapces
Dear All, I need help regarging small issue our developers have created some schemas in user and system tablespace and we are migrating to another server. I want to tranfer them in different tablespace non system tablespaces during migration. I creat