LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Built application can't find DaqMX devices with VISA Find Resource VI

My application programmatically finds all of my PXI devices using the VISA Find Resources VI with the following regular expression:
 
(PXI[0-9]*::?*INSTR){VI_ATTR_S:LOT >= 0}
 
This works with my built application on a PXI-8186 controller with LabVIEW installed, but when I created an installer to put it on another PXI-8186 controller without the LabVIEW development system, none of my DaqMX devices show up in my list of VISA resources.  They all show up in MAX, however.  I even tried creating a simple app that just has the routine which gets the resource list.  Ironically, the only PXI device that shows up in the list is a ZT1000PXI made by ZTEC Corp.  I also have a number of PXI-4437s and PXI-6120s in the chassis.  I tried setting the PXI option in MAX to report all PXI devices, not just registered ones, but that had no effect.
 
This is a Windows 2000 OS running on a PXI-8186, with DaqMX 8.5.0f3 and NI_VISA Runtime V4.1, and LabVIEW Runtime V8.2.1.
 
Does anyone have a clue why this isn't working? I've tried uninstallng and reinstalling NI-VISA Runtime, but it didn't matter.
 
0 Kudos
Message 1 of 11
(3,512 Views)

Hi wired,

As I understand it, you built an application in LabVIEW 8.2.1 on a PXI-8186 controller. When you moved to a new controller, one without LabVIEW 8.2.1, the program to find your PXI cards returns only a third party device and not your DAQ cards, despite the devices being visible in Measurement and Automation Explorer (MAX). You have an Installer for your application that installs the runtime engines for VISA and LabVIEW and the DAQmx driver.  Is my understanding correct?

You mentioned that you had tried setting the PXI option in MAX to report all PXI devices, not just the registered ones. By this, did you mean that you set the VISA option to Show all devices accessible to VISA? If you did not mean this, then I would suggest doing so. In MAX, you can expand the Software tab in the Configuration Tree to the left. By selecting NI-VISA, the VISA options become visible. You should select show all devices accessible to VISA as seen in the attached screenshot.

If you did in fact select this option already, can I ask if you also enabled the NI-VISA tulip Passport? In order to do this, on the VISA Options page, under General Settings, if you select the Passports option a list of checked boxes appear. Select the Tulips option as seen in the second screenshot and then click the Save button at the top of the MAX window. You will then need to close LabVIEW or your application and restart it.

I built a simple program to test this post, and until I followed the above steps, the only devices that appeared were my com ports. After doing this I was able to all of my DAQ cards.

Could you clarify some things for me? When you said that the application works on a PXI-8186 controller with LabVIEW, was this the development machine or just a controller you tried the executable on and it worked? What is in your installer? Is the VISA version on the test controller the same as that on the development machine? And lastly, in MAX, do the DAQ cards appear under DAQmx devices or under PXI systems and can you communicate with them using a test panel?

Good Luck, Mallori M.

Mallori M
National Instruments
Sr Group Manager, Education Services

ni.com/training
Download All
0 Kudos
Message 2 of 11
(3,481 Views)

Thank you for the response. My machine is not accessible right now, but I will try the "Tulip" suggestion as soon as I can.  Of course, this begs the question "What is a Tulip Passport, and why do I need to enable it"? I do have the "show all devices..." checked.

I have never heard of Tulip Passport, and have developed a number of VISA executable applications in the past. I will be very disappointed of this is what is required to make my application work.  IMO, the end user should not have to perform ANY operations outside of the installation for an application to run.

To clarify my problem: I developed the app on a PXI-8186 with LabVIEW 8.2.1.  I built the executable and made an installer for the program which included the run-time of LabVIEW  8.2.1 and the VISA run-time.  I installed it to a different PXI-8186 controller and it does not work.  FYI, I have a different application that uses only the ZTEC card, and it works fine.  The problem seems to be related to recognition of the NI devices.

I think the VISA version is the same, but I will check again when I have time.

The devices all show up properly in MAX, both as DaqMX and PXI devices.  I was able to query attributes, such as slot number and product name,  using the VISA test panel.

0 Kudos
Message 3 of 11
(3,464 Views)

Well, this morning I went back into MAX, and I no longer can see any PXI devices under the PXI chassis.  I also am not able to bring up the VISA menu options when I highlight NI-VISA in the software configuration tree.  This is getting rather frustrating... Apparently the uninstall/reinstall of NI-VISA must have caused some problem with MAX.  I am currently uninstalling MAX, NI-VISA, and daqMX.



Message Edited by wired on 12-10-2007 08:20 AM
0 Kudos
Message 4 of 11
(3,450 Views)
I reinstalled my application, wich installs MAX, NI-VISA, and daqMX.  I am still unable to get the VISA options to show up, and PXI shows all slots being empty.
0 Kudos
Message 5 of 11
(3,445 Views)
Hi wired,

To be able to access and configure VISA resources from MAX, you will need to install full NI-VISA and not just the runtime. Please try it out and let me know what happens. You should still be able to use VISA resources from your application with just the runtime, if you know the name of that resource.

Re. the Tulip passport, you won't need it unless you are planning to use an Agilent GPIB controller, which I assume you aren't.

Pankaj
0 Kudos
Message 6 of 11
(3,437 Views)
What do you mean by 'if you know the name of the resource' ? Can I not use VISA Find Resource VI in my application?  I do have NI-VISA RunTime 4.1 installed, and under it only visa32.dll is shown in the configuration tree.  I still am not able to see my PXI devices using the VISA Find Resource VI.
0 Kudos
Message 7 of 11
(3,406 Views)
Wired,

What I meant is if you already know the Resource Name then you can directly open a session to it and use it in your program. The VISA Find Resources VI will find all the VISA resources on your machine, with a small caveat as I discuss below.

In your previous posts, you have talked about 'Show all devices accessible to VISA'. Consider a system where there are two PCI cards, one bound to NI-DAQmx and another bound to a VISA driver you created using NI-VISA Driver Wizard. The PXI card that is bound to daqmx is really a daq device, and ideally NI-VISA shouldn't be used to communicate to it. That is why by default, you will not see that device in the VISA resources list when finding resources. That can be changed by selecting the option of 'Show all devices...' through MAX.

The problem you have now is that on your deployment system, you are just including VISA runtime (and possibly no MAX). Find Resources should still show all the PXI resources that have drivers generated by VISA Driver Wizard, but the Daq devices won't show up as VISA resources. So one option is to install full VISA configuration and MAX on that system and set the 'Show all devices...'. This is the safest, if not the easiest, option.

The easiest, but maybe unsafe if you aren't careful, option is to directly edit the visaconf.ini file that is installed on your machine with the runtime. It is generally installed at 'C:\Documents and Settings\All Users\Application Data\National Instruments\NIvisa'. Please make a copy of it and store at a safe place before editing this file. Once you open this file, you can see an option called 'ShowRegisteredDevOnly = 0' under [VISA-CONFIG] section. Just set it to 'ShowRegisteredDevOnly = 1'. You will need to exit Labview if you had it running after doing this. Once you restart your application, your VISA Find Resources vi should include the missing daq card as a PXI resource.

Let me know if you have other questions.

Pankaj
0 Kudos
Message 8 of 11
(3,402 Views)

Pankaj,

I checked the configuration setting you mentioned, and it is set to 1 already.  I still do not see all of my NI PXI devices. Can you recommend anything else? Should I use MSI Blast and wipe everything out? I only want to try that as a last resort.

0 Kudos
Message 9 of 11
(3,394 Views)
Just for grins, I tried installing NI-488.2, because the system was not recognizing the built-in GPIB of the 8186.  After installation, I went into MAX and could see  all my PXI devices again.  I then went in and checked the 'Show all devices accessible to VISA' option and exited the program.  When I start up my application, I am now able to see all of the PXI devices.  I guess that's good, but I'm left wondering what made this work.  There must be something happening with the installation. I don't know if it's a bad interaction with pre-existing NI software, or something else.
0 Kudos
Message 10 of 11
(3,389 Views)