Instrument Control (GPIB, Serial, VISA, IVI)

cancel
Showing results for 
Search instead for 
Did you mean: 

How do I use the NI-488.2 software to talk to an instrument's system bus?

I am trying to interface to an HP8510C, which has a system bus with other instruments connected to it. The docs for the 8510 say to control the instruments on the system bus you use a "pass-thru" mode by first sending a message over the GBIP to the 8510 to select the instrument on the system bus you want to talk to (using the "ADDRPASS" command), then next "send a normal output command addressed to the system bus, as if the device were connected to the computer directly." My problem is that don't know how to send a message addressed to the system bus.

The 8510 has a GPIB address of 16, the system bus has an address of 1, and the instrument on the system bus that I want to control has a system bus address of 19. To communicate over the GPIB with the 8510, I do the normal:

handle = ibdev(16, ...);
ibwrt(handle,buf, size);
ibrd(handle, buf, size);

To put the 8510 in pass-thru mode, and specify that I want to talk to the device at address 19, I do:

ibwrt(handle, "ADDRPASS 19;", size);

Now according to the 8510 manual, in order to talk to the device at 19, the next thing I am supposed to do is send a message "over the GPIB bus that is addressed to the system bus address". How do I do that with NI-488.2?

TIA!
-larry
0 Kudos
Message 1 of 4
(3,490 Views)
Hi Larry,

This is an interesting setup that you have going here. We have no way for you to communicate directly with the system bus. The "System Bus" that you mentioned may be something that the HP8510C is setting up to act as an instrument so you can communicate with it, but I'm not sure. You may want to get in touch with HP and find out how to do this configuration. If there is any way we can help with this, let me know.

Regards,
Matt S.

LabVIEW Integration Engineer with experience in LabVIEW Real-Time, LabVIEW FPGA, DAQ, Machine Vision, as well as C/C++. CLAD, working on CLD and CLA.
0 Kudos
Message 2 of 4
(3,468 Views)
Well, I've never used this instrument but I have a couple of suggestions that you can try. Since you say "send a normal output command addressed to the system bus, as if the device were connected to the computer directly", that sort of implies that to talk to the second instrument, just do a write to that address (i.e. GPIB0::19::INSTR if using VISA or an ibwrt (16, "command")). You might go into MAX, enable the pass-thru mode and do a scan for instruments and see what shows up. The other option to try would be to specify a secondary address. The VISA resource name for this would be GPIB0::16::19::INSTR and the ibdev syntax is "ibdev (int BdIndx, int pad, int sad)" where pad is primary address and sad is the seconary index.
0 Kudos
Message 3 of 4
(3,465 Views)
Thanks Dennis and Matt for the replies. I had opened a support issue with Agilent, and they finally replied and said that basically the 8510 occupies 2 addresses on the GPIB bus: one for the 8510 itself and another for it's system bus. So I need to do 2 ibdev's, one with address 16 (the 8510), and another one with address 1 (the 8510's system bus). I then use the handle that's approprate for which one I want to talk to. I am still having many issues with getting the instrument to work properly, but that is not a NI problem.

Thanks again!
-larry
0 Kudos
Message 4 of 4
(3,418 Views)