07-31-2012 03:37 AM
Good morning everyone,
I'm currently doing an internship period for the holidays (Until August) and I am aked to use Labview to create a software to analyze differents things on either .WVF files or .WDF files. Those files are created by respectively DL750 and DL850 scopes from Yokogawa. The thing bothering me is that i can't read raw data from WVF files and i can't read anything from WDF files by myself.
I've searched a bit around the internet and found that Yokogawa gives some DLL to read all kinds of datas from .WDF files. The thing is, as i'm not really used to dll creation/call and this one seems to be written in a language i'm not used to (c++), i didn't make it yet to make it working with the call dll nodes. It seems that the function from the dll used to read the raw data from .WDF files use a pointer and as Labview does not use that kind of data, it is necessary to create a cluster and some story about creating empty tabs to tell the node how much memory it has to use. I'm not sure i have understood everything but from what i got, as Labview don't do the malloc, the function may write in protected areas thus making Labview crash down or send a 1097 error.
I've read some things about creating a wrapper allocating the memory then calling the function needed but i fail at creating a dll despite following tutorials. It's still a bit unclear to me how I should do that.
In addition, it seems strange to me but Yokogawa gives a example.vi and example.wdf/example.fld to explain/try their dll. Even this works strange: with their file i get no error and everything is fine but when i try with one of my files i get an error 1097 or a crash in the functions finding the number of traces etc...
Moreover, about the .WVF files, I can read the .HDR informations with those but the raw data reading with read binary.vi seems to give me random numbers...
As i can't make the other parts of my software without tests, i'm a bit stuck. I must use Labview so people here can change the software later in order to match their needs. Also, i would like to avoid using other kinds of files. I can convert the .WDF to .WVF+.HDR, .WDF or .WVF (binary files) to .FLD (float) or .CSV (ASCII). The thing is that when the files are bigger than 2Gb (thus splitted into several files), the conversion is impossible.
My issue is a bit like the one here:
http://forums.ni.com/t5/LabVIEW/DLL-Pointer-within-a-Cluster/m-p/1480492
I've tried to used the read WDF.vi files given in here but it just crash every single time i launch or save or touch anything in those ones.
So as everyone around me doesn't know how to do it I post this to find some help. I also apologize for the grammar mistakes i could have done here.
07-31-2012 07:40 PM
Can you convert your WDF file with this tool
https://y-link.yokogawa.com/YL008.po?V_ope_type=Show&Download_id=DL00002358&Language_id=EN
08-01-2012 02:48 AM
First, i want to thank you for your answer.
I've already seen this .exe before and i forgot to mention it. The issue with this one is the same with the conversion to .csv or .fld: When the file is bigger than 2Gb, the DL850 scope from Yokogawa split the file in many files of 2Go max. And when this happens, this .exe fails. Anyway, even if this could help me for <2Gb for header datas, i still have issues in reading the raw data. And around 30% of the files i have to analyze are bigger than 2Gb (thus splitted in 2 or more).
Thanks you for your consideration.
08-01-2012 08:38 AM
I will add something: can anyone explain how the binary files are read with the VIs from Labview? How can i know how 0 and 1 are read? If i get a string from reading one of those files, i get something with parts i can understand (like YOKOGAWA, DL 850, CH1...). But the most of the file are covered of what seems to be ASCII characters he can't read.
08-02-2012 02:52 AM
No one never used Yokogawa products and Labview? =(
08-02-2012 07:28 AM
benjguil,
Have you looked at the LabVIEW driver for the DL850 available here ? I realize that you are analyzing .wdf files after the fact but the driver may contain some clues as to the process.
08-03-2012 03:27 AM
Thanks for the consideration you gave to my post 😃
I've seen it quite fast and it appears that the VIs here are just give orders to the DL850 to make the measurements, not to get the datas from the files created. As i understand it, it seems that the only way to make it is to use the .dll they give (in the same page). And i'm stuck as i can't make it work (it only work with the test.WDF file they give.
08-03-2012 06:48 AM
You give up to easy. What if I told you there was a vi in that lib that not only requested that the DL850 acquire a waveform but also transfered that waveform and displayed it in LV? As in it converted a waveform file.
08-06-2012 07:24 AM
Hmmm....
Didn't said i had given up, just that as i may lack time, i trust Yokogawa to know their device better than i do: They say that their dll was the only way to get the datas from the files so i just trusted them. I shouldn't?
Trusting you, i've checked once more the VIs you've told me about but i don't really see what you mean here. The getwaveform.vi and likes are giving lines of code to the DL850 and then read characters from the scope to convert the string into a waveform. But i can't read datas from the scope, only from files already created. Do you mean that i should try to use a readbinary vi the same way the read char from scope? In that case i don't see in what it would change from what i tried several times before. I'll most likely get some randoms chars as if it couldn't understand the chars it reads.
I'll give it a try anyway but still i don't see what i would change. Can you explain me then what so special in this way of using the vi because i really don't see in what it's special.
Anyway, thanks for the time you've spent for me.
I'll look forward your answer
08-07-2012 07:29 AM
I inform how to convert a part of big WDF file to a CVS file.
First, Install the Yokogawa's Xviewer(Trial version)
<https://y-link.yokogawa.com/YL008.po?Login_type=1&Download_id=DL00000560&Language_id=EN&LANG=EN>
Start the Xviewer.
Select "File - Open" from the menu.
Select the file you want to convert.
Press "Open".
If file was loaded successfully , waveform is displayed.
Select a range of zoom window.
Select "File - Save As" from the menu.
Set "Save as Type" to "ASCII file(*. CSV) ".
Press the "More Options" button at the bottom right of dialog.
Set "Data Range" to "Zoom range".
Set the file name.
Press "Save" button.
Sorry, I can't advice about labvew and dll.