Digital Multimeters (DMMs) and Precision DC Sources

cancel
Showing results for 
Search instead for 
Did you mean: 

HP3457A gives an error when reading the "ID?"

I have a Windows 98 box that is connected to several instruments via the GPIB and I can communicate with them all except one.  To make sure that there was not a problem with my HP3457A DMM, I grabbed another one off the shelf and had the same problem.  I am writing Visual C++ 6.0 code.  If I use the Interactive Control in the Measurement and Automation application I can issue an ibwrt("ID?") and then issue an ibrd(buffer, 7) [shorthand notation] and the DMM returns the ID immediately.  If I don't use the Interavtive Control but use the Communicator window to communicate with the instrument and I send the "ID?" query, the device appears to time out and the query window then displays the ID information along with EAOB.  Also, when I issue an ibrd(buffer, 7) from my program the command times out instead of returning a value as it did with the Interactive Control window.  Could this be a driver problem?  Or anything else for that matter?
 
Buck
0 Kudos
Message 1 of 10
(9,581 Views)
Hi Buck,

The best way to tell what's going on is to take a spy capture so you can see what calls are being made and what's being returned.  If you are not familiar with NI-Spy, there's a great tutorial here.  Please post a .spy file for each of the three cases you mentioned.  Also, what versions of NI-488.2 and NI-VISA do you have installed, and what GPIB hardware do you have?

Thanks,
Robert Mortensen
Software Engineer
National Instruments
0 Kudos
Message 2 of 10
(9,566 Views)

Thanks.  I have NI488-2 version 2.0 and the hardware is a National Instruments card.  I'm also going to check out the termination configuration window.

Buck

0 Kudos
Message 3 of 10
(9,562 Views)

Robert,

I played with the termination configurations and the one that worked the best was the way it was already setup.  I ran NI-Spy and created three capture files.  The first file named Capture1.spy contains the information collected when trying to send a query from the Measurement Explorer.  The second file named Capture2.zip contains the information collected when using the Interactive window.  The third file named Capture3.zip contains the information collected when trying to get the ID from my application.

Buck

P.S.

0 Kudos
Message 4 of 10
(9,557 Views)

Robert,

I tried to attach the .spy files but it would not let me.  How do I get the .spy files to you?

Buck

0 Kudos
Message 5 of 10
(9,555 Views)
Try changing the extension to ".abc".
Robert Mortensen
Software Engineer
National Instruments
0 Kudos
Message 6 of 10
(9,552 Views)
Thanks, here they are.
Download All
0 Kudos
Message 7 of 10
(9,550 Views)
Buck,

In capture 1 you are getting the right data back but are timing out because it hasn't read the full 2000 characters specified by the communicator and your instrument is not setting the EOI line high as indicated by the END bit being set in the status register.

In capture 3 you pass 0x0001 as the sixth parameter of ibdev which has the effect of not disabling eos.  The other captures have disabled eos by passing 0x0000 for this parameter in ibdev.  Change this in your code and see if it works.
Robert Mortensen
Software Engineer
National Instruments
0 Kudos
Message 8 of 10
(9,540 Views)
Good spot.  Unfortunately the behavior is the same.  I'm going to comment out the Multi-device function calls and have my program run just the same calls as the interactive window.
0 Kudos
Message 9 of 10
(9,537 Views)
I removed the multi-device function calls and the ibrd(buffer, 7) function works from my program now.
0 Kudos
Message 10 of 10
(9,534 Views)