Instrument Control (GPIB, Serial, VISA, IVI)

cancel
Showing results for 
Search instead for 
Did you mean: 

GPIB reading measurements of electrometer

Hello!

I'm an absolute beginner on GPIB-commands, but I want to write a program to write down measurements of an digital electrometer with an IEEE488-interface. The electrometer is Keithley 6514 with a National Instruments GPIB-USB-HS-adapter.

 

I installed all the drivers/programs provided by NI for this adapter and the "Measurement and Automation Explorer" was able to detect the adapter and electrometer! Then I followed the instruction to test the connection with the "Interactive control", sending traditional NI-488.2-Calls: ibdev 0 16 0 10 1 0 ibwrt "*IDN?" ibrd 100 ibclr ibonl 0  They do what they supposed to do, writing and reading the identification-information of the electrometer...

 

But when I try any other command to actually read the measured data (and even without a device connected to the electrometer, there should be plenty of ~0, right?) every time I get an error or another. just using ibrd again leads to timeout-errors EABO, while the electrometer's display show Error 420. I already tried to combine it with ibloc or using ibrda etc, getting error-codes like 411, 410, 210..

 

Do I need another String to send to get the data? Or am I using it totally wrong^^ I plan to connect to it with a C++-program (embarcadero/borland's version) later on... Are there problems using the C-commands listed in the help-file outside of microsoft's C++?

 

Regards, Julian

0 Kudos
Message 1 of 3
(3,510 Views)

You need to provide a list of the commands you are sending and for which ones you are also doing a read. Instead of the low level GPIB, I would recomend you use VISA functions and the VISA Interactive Control.

0 Kudos
Message 2 of 3
(3,492 Views)

Thank you very much for your fast answer!
(Also thanks to the moderator for cleaning my linebreaks!)

I listed some commands I sent, but after a bit of esearch, I really only needed different strings than "*IDN?"...
The strings are listed in the Keithley 6514 manual. e.g. to get the current displayed value:

ibdev 0 16 0 10 1 0

ibclr

ibwrt "read?"

ibrd 100

ibonl 0

 

Or "SENS:FUNC?" instead of "read?" to get the current kind of measurement.

 

A current problem woud be that the physikal interface is locked while in listening-mode (write/read)... I think, ibloc, ibrda and ibwrta would be sufficient to help this...

 

Thanks for your recommendation using VISA! will that make it easier? I don't think I will need more that these listed commands for my application...

Would it be easy to include VISA in embarcadero's C++-Builder?

 

Regards,

Julian

0 Kudos
Message 3 of 3
(3,482 Views)