06-25-2022 11:44 AM
I am trying to install the data acquisition toolbox on MATLAB 2022a so that I can acquire analog data in Simulink. Simulink then interfaces with LabVIEW 2016. LabVIEW 2016 is the only version installed on the computer and there are many programs written in LabVIEW 2016.
To install this board, I need NI-DAQmx. When I try to install NI-DAQmx I get the message that 'LabVIEW Runtime' will upgrade to the 2018 version(see images attached).
My question is:
If I allow this upgrade to occur, will this impact the code that I've written in LabVIEW 2016, or are LabVIEW and LabVIEW run time two separate programs?
06-26-2022 01:02 PM
Generally, multiple LabVIEW runtime versions can coexist on the same computer. And LabVIEW built executables will look for the version they were built in and give an error message if it is not present on the machine.
There are a few possible complications with this:
Since LabVIEW 2017, there is an option in the Application builder to enable "Allow future versions of the LabVIEW Runtime to execute this application". If this is checked the executable will start up in the newest version of the Runtime it can find on the machine. This can have bad effects for certain features in some applications where NI hasn't really been able to guarantee upwards compatibility somehow.
But your Matlab Simulink Toolbox is maybe not as forgiving. It is difficult to say anything here without knowing how the Toolbox tries to interface to the LabVIEW IDE. It is likely to assume that they actually use a LabVIEW compiled shared library, which of course requires a specific Runtime Version, to implement the LabVIEW VI Server interface to control a LabVIEW installation remotely, since writing their own VI Server interface library is not really an option as the VI Server wire protocol is not documented. If this shared library was programmed with LabVIEW 2016 or earlier there should be no problem as it will only really be loadable if the according runtime is installed. If it was programmed in a later LabVIEW version it depends on the build setting when the shared library was build if it would try to load a newer runtime then what it was built in. And that may just work, but there is a small chance that it wouldn't.