Jump to content

Recommended Posts

First time creating a Standalone Executable with LabView 7.1. Went through the steps in the app builder. Created the .exe and loaded it on the test PC. Needed RTE. Loaded that. The app ran but did not see the USB-GPIB interface. Loaded that. MAX now sees all of my devices. Program runs but does not access devices. Burned up 4 CDRs so far, what am I missing?

Thanks!

Link to comment
First time creating a Standalone Executable with LabView 7.1. Went through the steps in the app builder. Created the .exe and loaded it on the test PC. Needed RTE. Loaded that. The app ran but did not see the USB-GPIB interface. Loaded that. MAX now sees all of my devices. Program runs but does not access devices. Burned up 4 CDRs so far, what am I missing?

Thanks!

Is your VISA alias on the new machine correctly set up?

i.e. if you are accessing com port 1 as "COM1", then on the new system COM1 needs to be linked to Serial port#1.

Same concept applies to the VISA aliases. If your DMM is accessed as "DMM", define it to be the instrument you require.

Or else just use "GPIB::5" in the VISA control or constant.

Try to put an indicator on the front panel that shows you what the VISA string being used by the exe is.

Remember, once you have built the exe and installed the RTE, on the next iteration, simply copy over the new exe and it should run (you don't have to go through the install process again).

Neville.

Link to comment

Thanks. I am only using three devices besides the USB-GPIB interface. In my program, they are addressed as GPIB0::16, GPIB0::18, and GPIB0::19 in the VISA constant.

Seems simple enough to me, just can't get it to run the devices.

Is your VISA alias on the new machine correctly set up?

i.e. if you are accessing com port 1 as "COM1", then on the new system COM1 needs to be linked to Serial port#1.

Same concept applies to the VISA aliases. If your DMM is accessed as "DMM", define it to be the instrument you require.

Or else just use "GPIB::5" in the VISA control or constant.

Try to put an indicator on the front panel that shows you what the VISA string being used by the exe is.

Remember, once you have built the exe and installed the RTE, on the next iteration, simply copy over the new exe and it should run (you don't have to go through the install process again).

Neville.

Link to comment
Thanks. I am only using three devices besides the USB-GPIB interface. In my program, they are addressed as GPIB0::16, GPIB0::18, and GPIB0::19 in the VISA constant.

Seems simple enough to me, just can't get it to run the devices.

Are you getting any error message from your code? Where is it hanging?

Is your interface GPIB0 or is it GPIB1 (plugging or replugging the USB device might cause it to use another device number perhaps).

It has got to be something simple.. its not a big deal to build/install/run exe's.

Neville.

Link to comment

Doesn't hang, no error message. Just runs right through and never accesses the devices.

Interface is GPIB0 in MAX.

Are you getting any error message from your code? Where is it hanging?

Is your interface GPIB0 or is it GPIB1 (plugging or replugging the USB device might cause it to use another device number perhaps).

It has got to be something simple.. its not a big deal to build/install/run exe's.

Neville.

Link to comment
Doesn't hang, no error message. Just runs right through and never accesses the devices.

Interface is GPIB0 in MAX.

Very strange. I don't believe it has anything to do with the exe specifically. Try switching off one of the instruments and seeing if your code generates an error. It HAS to.

What does it do when it "runs right through"? If it runs through without generating any errors, I am wondering what your code actually does.

Neville.

Link to comment
Thanks. I am only using three devices besides the USB-GPIB interface. In my program, they are addressed as GPIB0::16, GPIB0::18, and GPIB0::19 in the VISA constant.

Is there a way for you to verify that the VISA constant is populated with the values you assume are there in an EXE? I would make that contant a control and bring it up to the GUI. Build an EXE with it like this and then you know %100 that the VISA control has this populated properly.

Link to comment

Thanks for the tips. I will try that tomorrow when I get back to work.

One concern that I had was that I found out the test PC was not logged in as administrator. Logged it in as admin and re-tried loading the installer. Still didn't work. Went to remove programs and removed all NI references and plan to start over in the morning.

Here is the sequence that I used: Loaded RTE, loaded GPIB (488), loaded installer.

When you create the application, there is a check box beside load RTE. Why doesn't it load automatically when you check that box?

Thanks again.

Is there a way for you to verify that the VISA constant is populated with the values you assume are there in an EXE? I would make that contant a control and bring it up to the GUI. Build an EXE with it like this and then you know %100 that the VISA control has this populated properly.
Link to comment

I put an indicator on the duplicate VISA output on each device and they display the correct addresses.

Is it possible that I am missing something in the 'compile'?

I did try to run NI Spy on the slave computer and I do not see any GPIB activity. The commands show up fine on the development computer.

More info... When looking at the software config on MAX, I do not see VISA. I assumed that it was loaded with the installer. No?

Thanks for the tips. I will try that tomorrow when I get back to work.

One concern that I had was that I found out the test PC was not logged in as administrator. Logged it in as admin and re-tried loading the installer. Still didn't work. Went to remove programs and removed all NI references and plan to start over in the morning.

Here is the sequence that I used: Loaded RTE, loaded GPIB (488), loaded installer.

When you create the application, there is a check box beside load RTE. Why doesn't it load automatically when you check that box?

Thanks again.

Link to comment

Problem solved! (sort of)

Loaded VISA on the slave computer and now it works.

This prompts the question, Why doesn't the installer bundle up VISA?

I put an indicator on the duplicate VISA output on each device and they display the correct addresses.

Is it possible that I am missing something in the 'compile'?

I did try to run NI Spy on the slave computer and I do not see any GPIB activity. The commands show up fine on the development computer.

More info... When looking at the software config on MAX, I do not see VISA. I assumed that it was loaded with the installer. No?

Link to comment
Problem solved! (sort of)

Loaded VISA on the slave computer and now it works.

This prompts the question, Why doesn't the installer bundle up VISA?

Because in all LabVIEW versions up to 7.1 the application builder has no possibility to add VISA or any other IO library installer such as NI-DAQ, NI-488, etc. They all do come with the apropriate hardware or can be downloaed from the NI site or copied from the Device Driver CD-ROM. In the case of VISA or even worse NI-DAQ it is not very likely, that everybody would want his installer bloated with 100ds of MBs of driver installation, which someone might have to reinstall anyhow because there has been a new driver version released since you built your app.

Rolf Kalbermatter

Link to comment

Thanks Rolf. I wouldn't think that you would need the entire bulky 488 and VISA packages on a computer that you are not doing any development with. I know that with CVI, the standalone executables are pretty skinny and they include all of the support modules required to run. I don't understand why NI cant do the same with LabView.

Because in all LabVIEW versions up to 7.1 the application builder has no possibility to add VISA or any other IO library installer such as NI-DAQ, NI-488, etc. They all do come with the apropriate hardware or can be downloaed from the NI site or copied from the Device Driver CD-ROM. In the case of VISA or even worse NI-DAQ it is not very likely, that everybody would want his installer bloated with 100ds of MBs of driver installation, which someone might have to reinstall anyhow because there has been a new driver version released since you built your app.

Rolf Kalbermatter

Link to comment
Problem solved! (sort of)

Loaded VISA on the slave computer and now it works.

This prompts the question, Why doesn't the installer bundle up VISA?

I guess we made the classic blunder of debugging 101: is it plugged in?

Of course GPIB will not work without VISA. I guess you take certain things for granted after a few years.

Thanks Rolf. I wouldn't think that you would need the entire bulky 488 and VISA packages on a computer that you are not doing any development with. I know that with CVI, the standalone executables are pretty skinny and they include all of the support modules required to run. I don't understand why NI cant do the same with LabView.

CVI includes all support modules? Even the entire VISA install? I haven't built an executable with CVI, if you have, then you probably know better.

There is one simple workaround... don't use VISA. Use the basic GPIB functions. I've been using them on and off for over 10 years now without any headaches. Of course there are good use cases and arguments for using VISA. However, none of those arguments justify their usage in the applications I have written.

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.