LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Version Madness

Solved!
Go to solution

I want to have a VI that runs OK under LV 2018, but if loaded with LV 2020, will have additional capabilities.
The tricky part is linking to code that contains features that aren't in LV 2018.
Here's what I've tried: The sub VI that contains the new features is saved in LV 2020.
The main code, saved in LV 2018, has the call to that sub VI inside a type specialization structure.
It works OK, except that a warning message always pops up when the main VI is loaded.
Is there any way to suppress the "File version is later ..." messages for a SubVI in a declined case in a type specialization structure?

 

Attached are snippets that illustrate what I'm trying to do.
Load "Main Merge (lv 18).vi" with LV 2020+, and everything is OK.
Load it with LV 2018 or 2019, and everything is OK, except for the warning messages.

"If you weren't supposed to push it, it wouldn't be a button."
Download All
0 Kudos
Message 1 of 10
(2,127 Views)
Solution
Accepted by topic author paul_cardinale

What about a dynamic call ?

It's a bit slower, especially on first call, but that works:

 

Main Merge.png

 Also there are considerations when building into an exe or ppl. The "Sub" must be included in builds for versions >= 20.

0 Kudos
Message 2 of 10
(2,076 Views)
0 Kudos
Message 3 of 10
(2,004 Views)

I'm not sure if this works, but you could give it a try.

 

Instead of opening a VI reference, buffering it and then do a call by reference, you could use the VI, and right click it, Call Setup, select Load and retain on first call.

 

wiebeCARYA_0-1668268423492.png

 

That should theoretically do the same, but I'm not sure how that will turn out when the DUT is a different version.

 

If it works, it will save a bunch of code.

 

0 Kudos
Message 4 of 10
(1,932 Views)

Strange stuff I have never tried but possible in theory.

 

Build the 2018 exe version with "allow future versions of the RTE" then simply Uninstaller the 2018 rte and only permit the 2020 rte.

 

I once asked about how LabVIEW determines which rte to use when an exe with that setting exists on a machine with concurrent valid rtes .  The answer was rather surprising. I don't recall the details and I never had to use it myself.  (Frankly, I worked hard to AVOID ever getting into that viper nest) But there should be a setting in myapp.ini or something to say use xxxx, yyyy, zzzz in that order of preference. 


"Should be" isn't "Is" -Jay
0 Kudos
Message 5 of 10
(1,877 Views)

As a side note, you can use the attached VI to determine what RTEs are installed.

"If you weren't supposed to push it, it wouldn't be a button."
0 Kudos
Message 6 of 10
(1,860 Views)

@paul_cardinale wrote:

As a side note, you can use the attached VI to determine what RTEs are installed.


"Get Installed Software.vi" is missing.

 

Probably depends on Daqmx?

0 Kudos
Message 7 of 10
(1,796 Views)

Only following this topic because of the unusual approach I downloaded your VI and ran it in LV 2021 and the front panel return nothing.

No error, no data. Nothing. Not even the root function:

 

 

0 Kudos
Message 8 of 10
(1,793 Views)

@MaSta wrote:

Only following this topic because of the unusual approach I downloaded your VI and ran it in LV 2021 and the front panel return nothing.

No error, no data. Nothing. Not even the root function:

 


Two suggestions.

 

May be NI System Configuration is not installed or wrong, try to download and reinstall:

https://www.ni.com/en-us/support/downloads/drivers/download.system-configuration.html#

 

Or may be because you have LabVIEW installed in German.

 

0 Kudos
Message 9 of 10
(1,772 Views)

Everything's fine in the MAX. And I don't think it's because of the german version. Never mind, don't need that information right now.

0 Kudos
Message 10 of 10
(1,764 Views)