Multifunction DAQ

Showing results for 
Search instead for 
Did you mean: 

Can an app be made to run with or without NI-Daq

If an app is developed in LabView 7.1 that uses NI-Daq 7.5 and the 6251 DAQ card can the app be made to run without having to check if NI-Daq and the hardware are installed so that the app can just be used for its non-data collection functions?


Here is our problem.  Our LV Developer is currently creating applications for our technicians to test products using the 6251 DAQ card.  We have installed the LV runtime and NI-Daq 7.5 on all these machines and everything is fine.  We want to install the same application on a majority of the other computers (if not every computer) in the company so that they can look up the data that is being collected from the LV app, but the other computers do not have the hardware or NI-Daq installed.  When the app starts up it apparently looks for at least NI Daq and when it does not find it, it fails.


The developer tells me that the app they wrote requires NI-Daq or else they have to maintain two versions of the app.  To do this, they need to strip out all the NI Daq stuff with every build which unfortunately can be monthly.  I  have virtually no experience with LV, but all my other programming experience tells me that it is not impossible, it is just more work for the developer.  Is the developer correct saying that there is no possible way to get the same LV App written so that the same app will work with or without NI-Daq installed on the machine? 


I know it does not seem like a big deal just to install NI-Daq, but I do not like the idea of installing NI-Daq across the company when it is not necessary especially since we updated NI-Daq 3-4 times last year at it took many hours each time with the downloads, updates, and testing.

0 Kudos
Message 1 of 2

Tell the developer to load the data acquisition functions dynamically instead of statically calling them. At the beginning of the program, a test can be made to determine if NI-DAQ is present. If it is, then those subVIs that require it are loaded dynamically. Dynamically calling subVIs is accomplished with the Call By Reference Node or VI Server and an Invoke Node. There are shipping examples. When the VI is built, the dynamically called subVIs are included as a support file. Support for this type of architecture has been included with LabVIEW for quite a while.

If the developer has questions, he or she should post them to the forum.

0 Kudos
Message 2 of 2