SV TDMS read waveform

Hi all

I have a problem with SV TDMS waveform VI read. I have several files from a (channel 0 hammer, N response chains) impact test where I gained 15 hits (4500 samples piecemeal, 67500 samples in each channel).

My idea is to read in blocks of 4500 samples. I placed the PDM read waveform looping and fixed the number of samples to 4500 and move the offset to move down the line.

He traces the first iteration, but in the second iteration, it displays an error message saying that it reached the end of the file (?)

If someone can take a look...

Thank you!!

Hi all

I found the problem, you must specify the name of the group as an input in the contrary case, it will produce this error. Now, everything's fine.

It will be useful for all those who

Tags: NI Software

Similar Questions

  • TDMS read fails on the channels of different lengths

    Experts in LV...

    It seems that there is an error in the PDM to read functions.   I have a TDMS file generated by a built executable, this file has a group of 9 channels.  Channel 5 is data taken at a higher rate (IE 20 MHz) compared to the date in the other 8 channes (1 Mhz).  1 Mhz channels have 110 000 points, of course, the 20 Mhz channel has 2 200 000 points.

    If I read this by using the playback feature TDMS passing an array of the names of Channel 9.  It runs and returns a table of 9 waveforms with Y0 dt values correct and the correct.  However Channel 4 (the 5th string, that long) a garbage in the data for all points since the stop the 110 000 in other channels.  This trash is as numbers-10 ^ 304 and zero.  The first 110 000 points are correct.

    The file itself is not damaged.  If I read the file in a loop 1 channel at the time, and to build the table of waveforms I get all 9 waveforms and the correct data of variable length.  A trivial example to read the actual data file is attached with the data file (I hope that boards that leave be attached).  Intrigue albums has corrupted data to read it all-in-one and the bottom has the accurate version of loop data.  The waveforms of tables on the left show that corruption occurs precisely at the location 110 000 table where the other tables

    Yes, the data file is too long for the forums.  You can get the program file and the simple example data

    TDMS error.zip

    No Council or if it is a real mistake.  I don't see anything in the documentation that I'm doing something wrong.  The fact that it returns a length of valid array and no error code is leads me to believe it's a bug of LV.

    Hi sth.

    Thank you for your results. The issue you reported is for playback of several channels of scaling in staircase once. (PDM read on several channels in staircase of unscaling works very well). The .tdms file, you provided, including the scaling of the data.

    I can give you two workaround solutions. The first is what you mentioned, read each channel of scale inside a loop. The second is that always read all channels once, but rank all length strings in descending order. (The first is the channel with a maximum length; the last is the channel of a minimum length).

    Kind regards

    Jie

    OR R & D

  • TDMS read is slow on the cRIO9024

    Hey

    I am currently changing my old program to save data in the TDMS files instead of text files. The file size is much smaller and the write speed is reasonable. The problem is that when I read the PDM file, it seems very slow (11,293 seconds) and acquires the ability to almost full CPU (97%) for a few seconds, which will reduce the communication of the user interface. The file size is less than 9MB 37 columns with 30000 lines. I'm not sure it's normal or not, just to feel a little hard to believe. The same program works fine on my laptop (1,281 seconds), but of course it has a more powerful processor (dual 2.5 GHz instead of 800 MHz cRIO). In the meantime a bright idea, thank you.

    double post

  • Get array (double) 2d reading tdms function

    Hello

    I want to get o a 2d from a PDM file table. I use tdms read for this, but it gives table 1 d out of it. Kindy help me. Please find the attachment.

    Please pass an 2d to Terminal 'data type' reading PDM.

  • All read old version data file in Labview 8.6 (waveform playback of file.vi)

    Hi, I have a big problem on the use of file.vi in LV8.6 reading waveform to play *.wmf files that were generated LV7.1 program.

    He often appears a message windows, refer to the attached picture file, because I use LV8.6 program to read a considerable number of such files,

    I can't afford all these windows message in my program, please tell me how to get rid of this message.

    Thank you very much

    Hello

    The type of waveform data is in LabVIEW 8.6 differs from the version 7.1, so this conversion is required. This knowledge base article solves the same error: Read Waveform files from old Versions of LabVIEW .

    To prevent the message from appearing, add silentDatalogConvert = true to the LabVIEW.ini file. It is located in the National Instruments\LabVIE 8.6 folder. I hope this helps!

  • TDMS loop to make the plot of trend

    I am trying to create a field of trend of peak values of waveform on the 32 channels of my data.  The only way I came with was to put my TDMS reading within a box structure.  If you want to build a trend select you the 'Build Boolean trend' and this case has the PDM read inside a loop that runs through all the samples.  To just scroll the data plots timewaveform and spectrum, you would be in the case of false that is not in a loop.  I have just a scroll bar will offset reading TDMS of entry.

    I get an error with the TDMS reading inside the loop for.  I'm guessing this has to do with the file TDMS of the PDM Open entering the loop for.  I get this error:

    Possible reasons:

    LabVIEW: end of file encountered.
    =========================
    NOR-488: Invalid Argument or arguments to the function call.

    When you use TDMS loop, you will need to be a little careful when you do not the name of the Group of wiring.

    In the TDMS documentation read:

    If you do not connect the data to this entry, LabVIEW reads the data from the first group when you run this function for the first time. If you run this function continuously for several cycles without wiring at the entrance to the name of the Group , LabVIEW reads the data from the n - th group to the nth cycle.

  • How to filter the traces of tension TDMS after acquisition?

    Simple question. We have acquired a lot of electrophysiological data with express signal. We now need to filter data after the acquisition for later analysis. I can import the files TDMS tension of previous experiences, but can't seem to run the filters we used on the side of the acquisition to filter the existing traces. Is there a simple way to do this?

    -smb

    Hello Chinchilla,

    I enclose a few screenshots on how to add a step to an analog input filtering. You can select the type of filter and order too.

    In this screenshot you can check how to change the configuration of the filter

    Finally, you can access the TDMS of LabVIEW file with one of the examples of PDM. Please follow these instructions:

    1. open LabVIEW

    2 - go to help > find examples to open the Finder 'example '.

    3 - Go to Fundamentals > file Input and Output > TDMS > Standard Read and Write and select the VI named TDMS read Events.vi

    You will need to know the data present in the file to read correctly. For this, you can use the leading PDM Viewer VI:

    http://zone.NI.com/reference/en-XX/help/371361K-01/Glang/tdms_file_viewer/

    Or you can use the Toolbox for excel: http://www.ni.com/example/27944/en/ (allows you to transfer the data to Microsoft Excel).

    4. After reviewing the data, you will need to apply a filter. You can find the filter functions in the range of Signal Processing.

    Please let me know if you have any questions on this subject.

    Kind regards

  • Sync CAN read, CAN write and DAQmx

    Hi all

    I have setup an application with a cDAQ 9178.  I have several digital and analog i/o cards and a BOBBIN card in the chassis.

    The unit is used in a hydraulic test bench.  I'm reading and writing of my analog equipment and digital I/O timed and synchronized.

    I also managed to synchronize my CAN read waveforms with my entry analog daqmx and so sync CAN read with DAQMX.  I used one of the examples in the finder of the example to handle this.  Now I want to synchronize my CAN write waveforms with my CAN read waveforms and so also with analog and digital DAQmx tasks.

    Are there examples where using the API OR-XNET which shows how synchronize CAN read waveform and CAN write waveform on the same interface?

    I tried to read my signals output by adding them to the list of signals of the CAN read signals, but they did not show.

    Thanks & best regards,

    Lieven

    Hi Simon,.

    I have the module 9862 in my chassis and have managed to use the trigger for the start of my NI9205 analog input card to synchronize my readings CAN with all my other analog I/o.

    Now, I just wanted to see my CAN output signals synchronized with the rest of the signals.  At first, I tried to use the same trigger for my BOX of output on the map, but somehow, it did not work properly.  After looking a little on the forum and in the examples that I found a knot of XNET SESSION property called EchoTX and used on my BOX of exit session.  I then added my output signals to my list of input signals and was able to read my output signals.

    That's what I was looking for.

    Thank you

    Lieven

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

  • Open TDMS causes an immediate forced closure of labview

    Hello world

    I have just started using TDMS (and labview actually) for the first time. I managed to save data in the TDMS format that can be displayed in Excel using the importer. However if I try to open it in a vi using the TDMSopen, labview and then closes immediately. Next time I start, it offers to retrieve for me and I'm back where I started. I'm doing it just to convert the data and binary (to read by Igor Pro) Igor Wave format. By the way, if I try to use the built in Igor Pro TDMS charger it fails also, citing error DIAdem-6204... but it is perhaps a matter for Igor forums.

    Thanks for any help. I spent ages of programming to save data in this format, and it would do the job very well if he could load in Igor Pro or same LabView. I connect two groups of data. I'm streaming to the TDMS file as I write it and then defragment it when I am done with it.

    I have attached a piture of my very simple vi - you give a folder and it should load all files TDMS one by one and save them as files binary Igor. It makes no difference if I get rid of the function of the IBW.

    Thanks for any help

    Niall

    Hi Niall,

    Thank you for reporting this issue. There is no execuse for the crash, there defenitely a bug.

    But the TDMS file is OK and the way that you play the TDMS file is not very good, and you have a little workaround.

    The problem is, the group 'Data' has 6 channels in, and 2 of them are the channel of timestamp data type. When he you a 2D double data type of "TDMS read" wiring, then read covert TDMS all channels of data to double but timestamp channels cannot be converted, I suspect that's where the accident occurred.

    You can use this way, as shown in the image, below you can wire a 1 d string array as the names of input to TDMS Read channels, contains only the data type double channels and play them all

    set:

  • simultaneous reading and writing on a PDM file

    I found similar discussions on here, but none that satisfied my problem. I'm running several loops within a vi, which writes data in a permanently .tdms file. Another loop to finish its task from the start in a test, and I want to transition this loop so that it accesses the file writing and started writing on a network. It also enables me to check that the data is being stored in the file and that it is corrupt.

    I started with just the basics, but when I pass the second loop to read the file that is is always written off mistakes, saying that she met at the end of the file. It does if I put the count 1, -1 or anything in between. It illuminates, however, the end of the file output.

    I have the entry in the file tdms on PDM read wired to a local variable, just as I do writing PDM, they all have both read the same thing and I get an iterations of a data value of the reading, so, apparently, file access is no problem. And I have to someone who cringed to local variables, ensure that reading and writing are not activated until the local variable is updated.

    Try to set the "group name" entry on «TDMS read» If you write more than one group, you can use "View the contents of the DDHN" in order to get a list of groups.

    Herbert

  • Backup error of waveform of 380 TDS in spreadsheet

    Hello

    I tried to record the signals generated by TkTDS 3xx read Waveform.vi a worksheet or Excel. I tried to use "write waveforms to file.vi.

    However, this error was encountered, ""you have connected 2 terminals of different type. " The type of the source is a cluster of 3 elements. The sink type is double of waveform. Therefore, I was wondering how to record the cluster of 3 elements to a worksheet? »

    The vi that I was working on is attached.

    Help, please.

    Thank you

    Hi Wan81,

    Yes, the heat exchanger of the method by Dennis Knutson is right. Please refer to the image below:

    If you want to write data in clusters, you can use the files Datalog. However, please consider to make, if you want to return to read or manipulate with LabVIEW ONLY . If you want to learn more about the files Datalog, you can refer by using LabVIEW as follows: Help files Datalog

    Please let me know if this solution works for your application or not. Good day!

    Sincerely,

    Krisna Wisnu

    Application engineer

    NEITHER ASEAN

  • Preserve the original dt during playback PDM

    Hi all

    I have the following situation. We have two VI; the first reads a PDM GB 3 file and allows us to extract the selected channels, which we can then decimate, reducing the size of bit, maybe a few other conversions, etc. We then record these channels in a separate file of PDM (naturally, smaller size).

    The second is an analysis VI, which allows us to have fun with the waveforms on the inside the smallest file PDM. However, when you use the function Read PDM, it seems that it converts information from dt to a default value of 1. A plausible solution is to define a data type control that allows me to choose the dt manually, before the reading of the actual process. However, this may be a bit heavy when dealing a PDM file with lots of channels (I have to define the dt for each channel, rather a PITA if I have to do this for 20 + channels).

    Is it possible to read the PDM file and extract the waveforms while maintaining the original data of the dt?

    Thank you.

    Dear Daniel,

    TDMS reading should return the dt appropriate until it has been saved successfully. Try to create a test on a small scale with writing and reading a file of small measures.

    Kind regards:

    Andrew Valko

    NOR Hungary

  • Calculations on data from PDM

    Hello

    I made a program that can store data of a cRIO by FIFO at speeds of up to 50 kHz and storing data on TDMS file on my host. The data comes from two modules of NI 9237 strain with a total of 8 inputs. Due to performance issues, I can't convert the RAW data for the force and store. Instead I store the RAW in PDM data and have a low priority to force the computation to give me an indication of the current forces in RT

    After collecting data, I want to perform the conversion by force on the data stored in my PDM file. Data are gathered on the FPGA in the following way(see fpga.png): data are sent to build the array and then passed into the FIFO.
    On the host, the array is sent of the FIFO to decimate with group name "RAW data" and 8 channels-> build-> TDMS files table. As another group on the PDM file, I store the force during their stay in the RT

    What is the best way to do programming for playback of the PDM file and convert the data to the forces? I tried to use open-> TDMS TDMS content list-> TDMS read that gives me a waveform output. At this stage I don't know how to proceed. How to cut out the shape of wave in channels 1-8 so I can perform the conversions with my sub VI? Or did I read something wrong since I am getting the output of waveform of the PDM? I want to read the file 'RAW data' group and the channels 1-8.

    Kind regards.
    Christian

    I expected something more for your analysis.

  • sample rate real vs min sampling rate

    I'm sure it's an obvious answer, but here goes.

    I have a USB-5132 ' scope and using niScope horizontal configuration Timing.vi I put, among other things, the minimum sampling rate. In my case, I chose 20 MHz, which of course gives a sampling of 50 ns period.

    I use niScope reading (poly) .vi with the WDT variant to read waveform data.  I noticed something very strange - waveform limit testing throw error 1802 "signals have a dt of different values '-if I put a waveform components unclusterizer Get on the wire of waveform and looked at the value of dt of the wave." He told me that my dt is 40 ns, which of course is of 25 MHz. I also plead for only 2000 samples.

    So what causes this shift? Why the digitizer does not accept everything just my desired sampling frequency?

    Austin Walton wrote:

    Andy,

    The setting of minimum sampling frequency is the frequency at which digitized
    the samples are stored, expressed in samples per second. This setting is rounded
    up to and including the next legal collection that supports your device.  Ownership of the actual sampling rate calculates the actual sample used for the acquisition rate.

    Unless you specify another source of the clock, the digitizer uses an internal oscillator as clock source.  For the 5132, this oscillator is clocked at 50 Mhz.  When using the oscillator internal as the sample, the digitizer clock source can use versions split to the bottom of this clock, for certain sampling frequencies are not possible.

Maybe you are looking for