LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

ref.vi in llb can be opened from within during development, not runtime

Hi I am not sure why it does not work. I am using labview 7.1, application builder 7.1 and DAQmx 8.5.

All my files are inside llb and main.vi works from llb. llb is labview library file.

In the main vi (inside llb), it can open another vi (ref.vi built with daqmx support) through call reference node during development.

After building application with ref.vi as dynamic vi..

then in the run time,  ref.vi cannot be opened from main.vi.

Where did I go wrong?

Clement
0 Kudos
Message 1 of 11
(3,674 Views)
Why use the llb anyway.

Try to convert the llb to a directory and build your application again, does it still not work?

Are you trying the executable on a machine without development environment? (make sure the daqmx driver are selected in the installer)

André
Regards,
André (CLA, CLED)
0 Kudos
Message 2 of 11
(3,668 Views)
Hi Andre.
Thanks. if this is the case, what is the purpose of llb?
Clement
0 Kudos
Message 3 of 11
(3,666 Views)
I've heard even NI developers being not to positive about the llb. 

Biggest problems to my opinion:
- Its a container file, not files inside are not easily accessible
- It only has a one dimensional view of the source

Advantage:
- Easy distribution of a set of VI's (driver), copy one file to get the whole driver)

I never use it, and when it still used it (several years ago) it gave me nothing by headaches.

André
Regards,
André (CLA, CLED)
0 Kudos
Message 4 of 11
(3,664 Views)

Hi Clement,


After building application with ref.vi as dynamic vi.. ref.vi cannot be opened from main.vi.

This is almost always because when a VI is compiled, the top-level EXE becomes part of the path - like a parent-directory.  The following VI will figure-out what the right parent path is and works for any VI whether alone, in an LLB or in an EXE.  Note that if building a path to a neighboring VI, you'll want to use "Parent" path not "Parent Dir" path. Smiley Wink

http://forums.ni.com/attachments/ni/170/151993/2/Util.VI.ParentDirectory.vi

Cheers!

"Inside every large program is a small program struggling to get out." (attributed to Tony Hoare)
Message 5 of 11
(3,655 Views)
Hi Andre.
I have created an labview application from all the related files group in the folder, It was sucessful.

So I used the same method. However this time, I still faced the same problem even i don't use llb.
I am puzzled with question marks.

I checked DAQmx ibstaller application but it is used in LV 8.5 and I am using LV7.1. Where can I find it?

Here are pics I did  as shown below


1) Device Selector bt reference node


2)Application building


3) Setting


Clement
0 Kudos
Message 6 of 11
(3,653 Views)
Place some indicators on the error clusters between the VI-server calls.

If there's an error in the executable this is the way to see them.

André
Regards,
André (CLA, CLED)
0 Kudos
Message 7 of 11
(3,640 Views)
Hi Tbd. Thanks for utility that I can use for my application. I never thought  that I can create the utility myself for every application.
Andre. You are right. I forgot that I had used your method before.

And there's one I am not sure about llb.

Using the controls to reveal where the application and llb are resided,
I find that, when searching for device selector1.vi. It outputs "c:\ Documents and settings\....\nidaqmx_analyser.exe\device selector1.vi"

device selector1.vi is inside llb. I can use strip and build path.vi to replace with nidaqmx_analyser12.dll

so does that i must create a new llb to include the only one device selector.vi along with the application and distribute exe along with llb everywhere?

Isn't it?

This is the first time for me to use llb. Is llb necessary?

please advise. Thanks in advance.
0 Kudos
Message 8 of 11
(3,619 Views)
Astro,
 
Yes, just like with an executable, the current VI's path will be <path to lib>/yourlibrary.llb/foo.vi.  To get the directory the llb is in, you will need to strip the current VI's path twice.  I'm a little confused why you want to use the llb at all.  Can't you just include the VI in the dynamic VIs and support files and build them into the executable?
Brian Coalson

Software Engineer
National Instruments
0 Kudos
Message 9 of 11
(3,581 Views)


@astroboy wrote:


This is the first time for me to use llb. Is llb necessary?

please advise. Thanks in advance.


Get rid of the llb and structure your app in directories on disk.

In development the path to the dynamically started VI is important, but in the executable the path is irrelevant.

André
Regards,
André (CLA, CLED)
0 Kudos
Message 10 of 11
(3,566 Views)