Instrument Control (GPIB, Serial, VISA, IVI)

cancel
Showing results for 
Search instead for 
Did you mean: 

A problem with SendList?

I am experiencing a problem with SendList.
Environment:
Windows 2000
Microsoft C++
NI-488.2 Software
VXI mainframe with a GPIB command module(slot 0)
three VXI plug-in devices

This configuration means that I have one primary GPIB address with four secondary addresses. I get an error when I run the query488 example program. The program correctly reports that it finds four instruments. The program times out when reading the result of the *IDN? commands with the Receive function. However, the problem seems to be with the SendList function. I can make the program work in one of two ways:
1) If I replace the SendList function with multiple ibwrt calls, the program works.
2) If I remove all plug-in cards leaving a single
device on the bus, the program works (it correctly reports the identity of the command module).

Am I missing something or is there a problem with SendList?
0 Kudos
Message 1 of 3
(3,000 Views)
If you are using NI-488 functions to communicate with VXI modules, that is just going to cause you tremendous headaches. Please use the VISA API for this. There's nothing wrong with NI-488, it just wasn't designed for VXI instruments.

VISA is designed exactly for stuff like this. It abstracts away the fact that there is a GPIB cable in the middle and lets you talk to your VXI instruments like you would talk to any other VXI instruments with any other VXI controller.

If you have had prior experience with the GPIB-VXI command set, I recommend you read Chapter 9 of the NI-VISA user manual. It gives you a good comparison between the NI-488, NI-VXI, and NI-VISA APIs. It should also help you transition more smoothly to using VISA.

Dan Mondrik
Senior S
oftware Engineer, NI-VISA
National Instruments
0 Kudos
Message 2 of 3
(3,000 Views)
SendList sends the listen address of multiple instruments and sends the single message to all of them at once.

Multiple ibwrt call individually addresses each instrument and sends the message to each of them.

What I presume is happening is that your have a Single GPIB Slot 0 controller that generates an address for each instrument in the VXI chassis. This GPIB Slot 0 is probably not designed to propegate a message to multiple vxi instruments at the same time. In other words, the GPIB Slot 0 cannot accept multiple listen addresses for instruments in the chassis.

In conclusion, the SendList method is working correctly. However, a feature (not a bug) of the GPIB Slot 0 is that it can only be addressed as one of the sub-devices at a time. Therefore,
your only recourse is to replace the SendList with multiple ibwrt (or you can continue using 488.2-style calls and use Send) calls to each instrument.

Does this make sense? Just note that it is not uncommon for a GPIB translator to be written such that it can only translate data to one device at a time.
Message 3 of 3
(3,000 Views)