LabWindows/CVI

cancel
Showing results for 
Search instead for 
Did you mean: 

Deploying LabWindows/CVI dll onto LabVIEW Real Time

we built a dll using LabWindows/CVI 2009 that is to be used with LabVIEW Real Time. we are targeting version 8.0 and newer versions. when i tested it on my system, everything was fine.

 

however, when we tested it on a system that didn't have LabWindows/CVI installed, the vi didn't deploy to the target and i got an error message saying that it couldn't find a function in cvi_lvrt.dll.

 

i suspected immediatly that we were probably missing a dll. we installed LabWindows/CVI and was able to deploy the vi to the target.

 

what do i have to redistribute from LabWindows with our product and were should it get installed on the end user's computer.

 

thanks.

0 Kudos
Message 1 of 6
(3,877 Views)

RT DLLs built in CVI depend on the LabWindows/CVI Run-Time Engine for RT. This must be installed to the target (RT) machine from a host (Windows) machine that has the LabWindows/CVI development environment and Real-Time Module. It is installed, just like all other real-time software, through Measurement & Automation Explorer (MAX).

 

You must install a version of the runtime engine that is at least as high as the version of CVI you built your DLL in. Additionally, if your CVI DLL is calling the serial library functions (e.g. OpenCom, ComRd, etc.), you must also install NI-Serial for RT to the target machine, because the OS does not include a serial driver.

 

Mert A.

National Instruments

0 Kudos
Message 2 of 6
(3,873 Views)

but what if my customers don't have LabWindows/CVI? i.e. they only have LabVIEW with the RT module.

 

is there a way to give them the run time libraries and hve them copy them over to the RT target?

0 Kudos
Message 3 of 6
(3,857 Views)

Chucky,

 

If you want to "do it right", you should create a distribution for your DLL project in CVI. In the Drivers and Components tab of the Edit Installer dialog, you can unselect everything except for the LabWindows/CVI Run-Time Engine>>Real-Time Run Time item. This will create an installer that your LabVIEW Real-Time customers can install on their LabVIEW host computer. Once they've done that, they can add your DLL to their VI, and LabVIEW should automatically download the CVI run-time to the real-time target whenever necessary.

 

If you don't want to create a distribution, you could simply give the cvi_lvrt.dll to your customers and ask them to copy it to the Windows system folder. That's probably sufficient today, although there's no guarantee that this will always be the case.

 

Luis

0 Kudos
Message 4 of 6
(3,835 Views)
if the run time engine is only a single dll, is there a static lib i can link to perhaps?
0 Kudos
Message 5 of 6
(3,797 Views)

Sorry, the run-time engine is a DLL, not a static library.

 

It isn't hard to distribute it with your DLL in a distribution kit or you can download an RTE installer from NI and run it on the target system.

 

I find it is easier to just build a distribution kit with the RTE included so all you have to do is run the distribution kit installer to ensure the RTE is there and your DLL goes where you want it to be installed.

Martin Fredrickson
Test Engineer

Northrop Grumman
Advanced Systems and Products
San Diego, CA 92128
0 Kudos
Message 6 of 6
(3,783 Views)