LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Runtime Engine Bug with PPL's and TestStand only when "allow future versions"

Solved!
Go to solution

This took me forever to create a working demo. This is directly connected to this post: https://forums.ni.com/t5/LabVIEW/Error-1571-in-Get-LV-Class-Default-Value-in-specific-situations/m-p...

 

I've found an issue in LabVIEW that only happens when the "allow future versions of LabVIEW Runtime to load this application" is checked. When it's unchecked the issue does not appear. I've attached a zip file, that contains all the source, and builds to recreate the error. Outlined below is the steps to reproduce it, as well as the basic setup of the demo.

 

Source Code: LabVIEW 2017 SP1. The Source code for the TestStand seq is LabVIEW 2014. Keep it that way (I think its part of the issue).

Runtime needed: LabVIEW 2014, LabVIEW 2017, LabVIEW 2019/20. TestStand 2017.

 

Inside of the zip file you will find the following folders:

BaseActor -> Contains the source code for the base actor.

Builds -> Contains the base level PPL's, and Sequence files that are common among everything, as well as the TestSTandSimpleUI.lvlibp. This also contains the Launcher.exe to use.

InstrumentBuilds -> Contains the DCPowerSupply, DCPowerSupplySimulated, and GUI PPL's.

Insturments-> Source code for InstrumentBuilds PPL's.

Launcher -> Contains the LabVIEW Project that builds the *.exe to launch everything.

TestStand -> Source code for the TestStandSimpleUI.lvlibp

 

Steps/Settings to Reproduce:

1. The TestStand LabVIEW Adapter should be set to Runtime and Auto-Detect.

2. Run Launcher.exe with "allow future versions" checked. Depending on the order the application is run, is how the error gets reproduced.

 

No Error Steps: (must be done on a clean launch)

3. Select DCPowerSupply. Notice there is NO ERROR when LabVIEW loads the DCPowerSupplySimulated class. You can check this by setting the voltage, and getting the voltage to see they correspond.

4. Click Close.

5. Click TestStand to launch the TestStand Simple UI Actor

6. Run the sequence in the Build path called "Mobile Device Test Client.seq"

7. Pick any phone, click enter on the failure dialog box.

8. Once the sequence is done. Click Exit. (can take some time)

9. Go back to DCPowerSupply to see everything still works.

 

Error Steps: (must be done on a clean launch)

3. Click TestStand to launch the TestStand Simple UI Actor

4. Run the sequence in the Build path called "Mobile Device Test Client.seq"

5. Pick any phone, click enter on the failure dialog box.

6. Once the sequence is done. Click Exit. (can take some time)

7. Select DCPowerSupply. Notice the error when LabVIEW tried to load the DCPowerSupplySimulated class. The program is now broken, because LabVIEW won't load the PPL due to a version error.

 

You can now change the *.exe to not allow future versions to run it. This will allow either the No Error/Error Steps to work.

 

Message 1 of 4
(1,309 Views)

Hi,

 

just for info, and because you are not alone I have post these 2 ideas :

 

Add ability to select which version of LabVIEW Runtime is compatible with executable - NI Community

 

Add ability to disable "Allow future versions of the LabVIEW Runtime" for Real Time application - NI...

 

Best regards

Maxime R.  

  CLA - Certified LabVIEW Architect / Architecte LabVIEW Certifié
  CTA - Certified TestStand Architect / Architecte TestStand Certifié

0 Kudos
Message 2 of 4
(1,089 Views)

I'm attaching a new version that exhibits the same issue. This time you just need LabVIEW 2019 RTE, and either 2020 or 2021 (Something newer).

 

The TestStand sequences were built in 2017, but can be used with anything newer and the issue still exhibits.

 

0 Kudos
Message 3 of 4
(885 Views)
Solution
Accepted by topic author ShockHouse

Solution for this.

 

1. If you are using a LabVIEW Exe, checkbox "Allow future versions to load this"

2. In the TestStand Adapters, change them to RTE and turn on "Version independence".

 

If you only have one runtime engine installed, or the LabVIEW code you are calling from TestStand matches the same version as your exe you won't see this issue.But applying step 1,2 will ensure everything is loaded in the same version, if you do have multiple on the machine.

 

This will make the EXE, and TestStand load the same LabVIEW RTE year. And things will work fine from then on out.

Message 4 of 4
(209 Views)