Jump to content

Recommended Posts

I have run across a strange issue. I have some code that calls FP driver VIs (from vi.lib). These VIs are loaded dynamically by an EXE (plug-in architecture). I build the library of these VIs for distribution using OpenG (target: llb). I also exclude the vi.lib VIs since these should be included in the RTE. This has worked fine for all my code up until I starting using the FP VIs. (FP Open.vi, FP Read.vi, FP Write.vi, FP Close.vi).

It seems like these VIs are missing from the RTE vi.lib. Very weird.

Does anyone know how to have the OpenG builder include just some of the VIs from vi.lib that a particular VI has dependencies on? I don't want to include everything from vi.lib in my LLB distribution or it will be huge.

thanks for any ideas.

-John

Link to comment

Might have something to do with the fact that FieldPoint modules have very little memory and slow processors, so the RTE on FP might be very different than the normal LV-RT install on a PXI for example.

Are you building it under a FieldPoint target in the Project?

N.

Link to comment

QUOTE (jlokanis @ Jun 9 2009, 08:52 PM)

Does anyone know how to have the OpenG builder include just some of the VIs from vi.lib that a particular VI has dependencies on? I don't want to include everything from vi.lib in my LLB distribution or it will be huge.

thanks for any ideas.

-John

So you know which VIs are troublesome (from trial and error), what you could do is build an additional library with just these VIs placed inside a container VI (similar to an 'old' tree VI), and load this container VI into memory of your RTE, I am not sure if this will work since it might require a recompile of the library VIs.

Another option is to exclude the vi.lib but have a call-back VI loaded with OpenG builder that includes the troublesome VIs into your distro.

My advice is to open up the builder sourcecode and see which specific call-back VI you need.

Ton

Link to comment

QUOTE (jlokanis @ Jun 9 2009, 01:52 PM)

FP Open.vi, FP Read.vi, FP Write.vi, FP Close.vi

You might want to make sure you have included the DLL that these VIs call (FPLVMgr.dll) where it can be found by the VIs. When you bundle as an LLB using OpenG Builder, it doesn't know that it needs to include the DLL for use in an executable. If you are getting an error 1003 when you try to run the llb code, you may just be missing the DLLs.

Link to comment

Yes, that was a problem at first because the DLL was in the 'data' support folder of the EXE. Once I moved it into the same folder as the LLB, the error 1003 went away.

So, now I have bundled all the vi.lib VIs into my LLB, got the DLL in the right place, made an iak file of all the cFP units in the whole factory and tweaked the:

C:\Program Files\National Instruments\Shared\FieldPoint\LabVIEW\fpconfig.ini

file so it has an alias that points to my iak file, I can finally run code that uses the IO Point input to the FP VIs using a string derrived from a script file! I have achieved data driven cFP nirvana! WooHoo! Now I can deploy and only need to update the iak if the IPs change or we add new hardware! And it is 10x faster than the old method (using LOGOS calls via DataSocket).

I must say, however, what a PITA this was. And completely undocumented by NI.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.