03-16-2011 07:35 AM
In my DAQ loop I use this express VI to trim down the information that I am reading from several digital lines at 100 kHz. I convert the digital waveform into an array, and scan the array for transitions, passing only the transitions through a queue into my data storage loop.
Surprise! I'm having timing troubles, and profiling reveals that DWDT Digital to Binary U32.vi is taking up the preponderance of the time. Looking at its internals shows a call to DTbl Digital to Binary U32.vi. The one obvious piece of damage in there is a call to the Threshold 1D Array function, which returns Double, which then must be converted back to I32.
To National Instruments: please study and fix this function. Like several other things in the digital waveform domain, it seems to have been patched in hastily, without the care for speed and efficiency that the rest of LabVIEW shows.
To everybody: has anyone dealt with this problem? Has anyone come up with an alternative implementation to achieve the same goal?
Thanks,
Ken
03-17-2011 02:13 PM
Good Afternoon Ken,
I believe that this VI works well under moderate amounts of data. However, several lines of data being sampled simultaneously at 100 kHZ is quite a bit of data for this VI to convert to binary. Approximately, how long is this VI taking to convert all of your data to binary?
-Cody C
03-17-2011 03:49 PM
My view of Express VIs are well known, and the fact is that they are bloated. But before we point the finger on NI. Perhaps you can post your code. I could not find a "DWDT Digital to Binary U32" Express VI. As a starter.
03-17-2011 04:01 PM
Some DAQ devices can be configured for 'Change Detection'. User defined # samples are taken every time a a change is detected. Eliminates the need to go digging through a bunch of data.