NI TestStand

cancel
Showing results for 
Search instead for 
Did you mean: 

Error when loading a vi module from teststand sequence but vi executable runs OK

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

0 Kudos
Message 1 of 11
(3,762 Views)

@abelino wrote:
[...] but when I deploy the teststand [...]

How exactly are you doing this? Are you using the TestStand Deployment Utility?

Norbert
----------------------------------------------------------------------------------------------------
CEO: What exactly is stopping us from doing this?
Expert: Geometry
Marketing Manager: Just ignore it.
0 Kudos
Message 2 of 11
(3,746 Views)

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

0 Kudos
Message 3 of 11
(3,742 Views)

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.

0 Kudos
Message 4 of 11
(3,730 Views)

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.

0 Kudos
Message 5 of 11
(3,726 Views)

Can you send me a log from your temporary directory?

  • Type %Temp% in a file browser and hit enter
  • There should be a txt file in this format:
    <appName>_<bitness>_<lvVers>_<user>_cur.txt
    Find the one that corresponds to the version of the sequence editor you're seeing the problem with. (eg. SeqEdit_64_15.1_lvadmin_cur.txt)
  • Delete it
  • Reproduce the problem again
  • check for that file again and post it here.

Thanks,

Trent

https://www.linkedin.com/in/trentweaver
0 Kudos
Message 6 of 11
(3,717 Views)

Hi Trent!

 

See attached files, the log and also the error window (just in case).

 

Thanks and Best Regards.

Abel

Download All
0 Kudos
Message 7 of 11
(3,713 Views)

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 runtimethen 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

https://www.linkedin.com/in/trentweaver
0 Kudos
Message 8 of 11
(3,700 Views)

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.

Norbert
----------------------------------------------------------------------------------------------------
CEO: What exactly is stopping us from doing this?
Expert: Geometry
Marketing Manager: Just ignore it.
Message 9 of 11
(3,690 Views)

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

0 Kudos
Message 10 of 11
(3,680 Views)