LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

How do I make a VI that contols a 6534 card take less time to load 1Mbyte and output data ?

Hello-
I'm developing a pattern generation burst mode type VI that reads byte characters from a text file, manipulates the bytes that it reads and then outputs the data from a 6534 card. The REQ1 pin is pulled high which makes the card continually output data until the internal buffer is empty. An internal clock is used. The problem is that the size of the file that is read by the VI can be relatively large, in the 1MByte range. After the VI manipulation, the output array is 16 times larger than the input string. So, when the VI reads a 1MByte text file, the output array contains 16 million entries (each array entry is 3 bits by the way). It takes about 20 seco
nds to run and output data from the 6534 even when reading files that are 200kbyte or so. I'm outputting the data at 5Mbps. I'm not sure where all the delay is coming from. Using the 'Profile VI" function under the 'Tools' menu shows a snapshot of time that really doesn't help me since it only shows that the time is spent in my VI. Is this just the result of loading large files ? Or, is there a way to preload the 1MByte file into the 32MB of RAM on the 6534 card before the VI is actually run. What I mean is that I do have the option in my system to have a time when all text files will somehow be loaded into the 6534 memory, during some initialization period, and then the VI would be run with the text file already loaded. This of course assumes that the delay is loading the file from the harddrive, but since the harddrive transfer speed is fast, I have no idea where to speed things up. Any ideas ? Thanks !
0 Kudos
Message 1 of 2
(2,507 Views)
Your question actually belongs to the Measurement Devices >> Digital IO section since it concerns operating the 653x family of digital boards. You will see other related questions and answers there. In the future, please direct your digital questions to that forum.

If you are trying to profile your VI, you can break it into different pieces. For instance, you can make a subVI out of the file data manipulation.

Now, are you doing pattern generation or burst mode handshaking output? From your description of the signal connections, it looks like burst mode. You can double-check in the 653x User Manual at the http://www.ni.com/manuals pages. Still, it looks like you could accomplish your task with pattern generation. There are example VIs for both operations that
I suggest you start with. They are located in the LabVIEW >> Examples >> Daq >> Digital >> 653x.llb directory.

It also sounds like you are doing a single buffered operation, where you have a set amount of data that you want to output, and once done, the VI will stop. You are preloading the data to the buffer at DIO Write.vi before the 6534 actually outputs the data with DIO Start.vi when you program like the examples.

Thus, start with the appropriate example and then add the File I/O to it. You can even test with a smaller file to see the effects. You will also find useful information concerning the 6534 in the KnowledgeBase, particularly KnowledgeBase 298CGF9M "How Many Samples of Data Can I Store in the Onboard Memory of the NI 6534?". You can find this online by going to the http://www.ni.com/support and choosing KnowledgeBase from the Technical Resources pull-down menu. Then, type in keywords to search for, such as "6534".

Regards,

Geneva L.
Applications Engineering
Nati
onal Instruments
http://www.ni.com/ask
0 Kudos
Message 2 of 2
(2,507 Views)