Pre-Load All Steps Option Doesn't Work in TestExec 5.1 Mass-Compiled by LV 5.0.1Primary Software: LabVIEW Toolkits>>Test ExecutivePrimary Software Version: 5.1 Primary Software Fixed Version: N/A Secondary Software: N/A
Problem: If I install test executive without mass compiling, I am able to:
Solution: In LabVIEW, if a VI is loaded into memory (either as part of a hierarchy of VIs or by using the Open VI Reference function), only the executable portion of code is loaded into memory. Neither the front panel nor the block diagram of the VI is loaded unless needed. Things that can require the front panel or block diagram to be loaded into memory include:
When the LabVIEW Test Executive 5.1 (LV TE) pre-loads a VI, it calls Open VI Reference on that VI. Therefore, unless a recompile of the VI is needed or if there exists an attribute node on the diagram of the VI, the panel of the VI is NOT loaded into memory. When the LV TE calls a test VI, it does a "Set Control Value" operation on the VI. This operation requires that the VI's panel be in memory. If the panel is not already in memory, LV must go back to disk and retrieve the panel portion of the code. This is necessary only the FIRST time that the panel is needed. LabVIEW won't throw the panel out of memory until the whole VI is released. The behavior described in the above problem description is correct. When the VI is called the first time, LabVIEW must go and retrieve the panel of the VI from disk (unless it already happened to be loaded). If the internal path to the VI is no longer valid, LabVIEW will then prompt the user to find the VI. Now, why does the TE behave differently if it has not been mass compiled? Well, it actually has nothing to do with the TE itself. It has to do with recompiling the test VIs. The example mentioned above calls test VIs that are found in the LVexec51 directory. If you mass compile that directory, then those test VIs are recompiled. If you don't mass compile the TE, the test VIs need to be recompiled when they are loaded. Therefore, LabVIEW loads the entire VI, panel and all, into memory when the test VI is pre-loaded. In this case, LabVIEW does NOT need to go back to disk when running the VI for the first time. The fact that the TE seems to work correctly in this case is really just a side effect of having the current version of LabVIEW be different than the version that the test VIs were saved with. LabVIEW shouldn't load all parts of a VI unless they are needed. In addition, you should avoid moving the test VIs after they are loaded. Related Links: Attachments:
Report Date: 11/20/1998 Last Updated: 11/30/2004 Document ID: 1FJDAE8U |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
