I'm testing an application using VB.Net and the VISA32.dll with multiple GPIB Interfaces (NI GPIB-USB-A and Agilent 82357A). I have enabled the NIVisaTulip.dll - VISA Library Passport for Tulip so that I can use NI VISA to communicate with the Agilent Interface.
The first call to viFindRsrc using a search expression of ?* normally returns the actual instruments on the bus for both interfaces (named GPIB0 for the NI interface and GPIB1 for the Agilent interface). However, subsequent calls return both the valid resource descriptors and, in addition, invalid resource descriptors for all other possible GPIB addresses as follows (first three are valid):
GPIB1::INTFC
GPIB1::4::INSTR
GPIB1::28::INS
TR
GPIB1::1::0::INSTR
GPIB1::0::INSTR
GPIB1::1::INSTR
GPIB1::2::INSTR
GPIB1::3::INSTR
GPIB1::5::INSTR
...
GPIB1::30::INSTR
Running the VISA Interactive Control from NI MAX provides the same results.
Calls to viOpen with these invalid resource descriptors do not return an error and appear to open a valid instrument session.
Is this a problem in the Tulip layer and how can I identify valid resources?