06-22-2017 09:13 AM
Hi everyone!
I have developed a sequence in teststand 2014 that calls a labview module developed in 2015 SP1, On the development machine everything is OK but when I deploy the teststand and run it, I got an error saying that my first labview module on the sequence can't be loaded due either because it is broken or some subvi is missing. If I compile that module into an executable and run it on the deployed machine the VI runs without a problem.
The VI uses DAQmx, all tasks in NIMAX have been imported from the development machine and DAQmx 15.5 is installed with the LabView 2015 support. On my development machine I have DAQmx 15.0, but I'm doubtful that this can be the issue, I expect that the DAQmx 15.5 should work if the LabView 2015 support is installed and even more if the executable of the same vi module runs OK.
On the same error screen is recommended to change the VI loading to "dynamic loading", but I don't think this will help, the only difference is that I will get the error once it is called.
Thanks in advance and Best Regards.
Abel
06-22-2017 09:48 AM
@abelino wrote:
[...] but when I deploy the teststand [...]
How exactly are you doing this? Are you using the TestStand Deployment Utility?
06-22-2017 11:20 AM
Hi Norbert!
With the teststand deployment utility I only deployed the basic, only the teststand and labview runtime engines, then I installed DAQmx and imported tasks from NIMAX, and finally I'm using a modified labview simple UI (testexec executable) which loads the sequence file.
Note: Teststand license for the deployed computer hasn't been installed, I'm testing the system with the 7 days trial, the plan is to check that everything works OK before I enter the deployment license, hope this is not the issue.
Best Regards.
Abel
06-22-2017 01:22 PM
As an update, I just removed the DAQmx 15.5 and installed the nearest version that I found (15.0.1f3) to the one on the development computer (15.0.0f2), but same issue.
06-22-2017 01:53 PM
Another update, I added a vi call before the one that is showing me the error, this vi is a simple string input to output pass-through, teststand is not showing me any error for it, instead it just shows me the error for the same vi as before. The only difference is the DAQmx.
06-22-2017 03:16 PM
Can you send me a log from your temporary directory?
Thanks,
Trent
06-22-2017 04:10 PM
Hi Trent!
See attached files, the log and also the error window (just in case).
Thanks and Best Regards.
Abel
06-22-2017 05:58 PM - last edited on 10-20-2024 07:39 PM by Content Cleaner
Looks like the missing dependency is:
DAQmx Write (Analog DBL 1Chan 1Samp).vi
That may not be the only missing one, but it's definitely preventing "Slow_Programming.vi" from loading. Unless that VI is in the exact same path and is compiled for the same version of the runtime, then the LV Runtime engine won't be able to load it because it can't recompile your top level VI to point to the new location/version on disk.
You either need to remove the newer version of DAQmx and deploy the same one, or distribute your VIs in some kind of fully compiled and linked format like a PPL. As you've seen - building an executable will accomplish the same thing.
Hope this helps!
Trent
06-23-2017 02:43 AM
Because you don't create a deployment package, you are missing the depending VIs. In that case (as Trent found out from your logfile), you are missing the DAQmx API VIs which are usually placed in the vi.lib from LV.
As you don't use LV as developement environment, the LV RTE doesn't know how to find and execute these VIs. Therefore, you get the error.
You can, as Trent suggest, create a PPL from your LV code you are calling the sequence. By this approach, the LV Application Builder takes care of the depending VIs from vi.lib, instr.lib and user.lib and put them into to the PPL.
Another option is to create LV Source Distribution on all your LV VIs you call in the sequence. This is what the TestStand Deployment Utility does for you. Hence i recommend you to do either this or the PPL approach.
06-23-2017 09:09 AM
Hi Norbert/Trent!
I will review this shortly. Just in order to get this right, I assume that if I install LV 2015 development system in the machine, even if not activated, should fix the issue too? For what I understand the path to the DAQmx function is not saved in the VI itself, rather it is defined on the LV development environment, correct? I also assume that if the function is called through the "Select VI option" and browse to the location instead from the Measurement ->DAQmx menu on the block diagram that should define the path in the VI?
Thanks a lot and Best Regards.
Abel