Instrument Control (GPIB, Serial, VISA, IVI)

cancel
Showing results for 
Search instead for 
Did you mean: 

BE256 (older piece of HW) and NI GPIB?

Solved!
Go to solution

Dear Experts!

 

I am attempting to communicate with a BE256 (rather old device with a GPIB interface).

 

It has e. g. commands like ID? (instead of *ID?) which I have encountered a couple of times in older systems.

 

Unfortunately, I cannot make the device talk back.

 

I was successful with a GPIB adapter from a different brand, but couldn't repeat the success with the NI hardware. I have toyed around with a couple of settings, both in the GUI (NI-488.2 Communicator in  the M&A Explorer), as well as via C where I had accessed a couple of other devices successfully before (typically, the NI adapter is pretty reliable and also forgiving, even when communicating with older HW like AMREL PPS-1326), but the BE256 is not answering at all.

 

Any ideas, hints, or need for clarification?

 

Best wishes,

diadev

0 Kudos
Message 1 of 4
(3,550 Views)

Hi,

 

Try changing ome of the settings on the GPIB board properties page.

 

 

In 'Advanced' settings try changing the bus timing to 2usec.

In the  'Termination Methods' try changing the EOS/EOI settings.

 

Curt

0 Kudos
Message 2 of 4
(3,546 Views)

Hi Curt!

 

Thx for the input!

 

Unfortunately, I tried all the settings of the GUI already (Measurement & Automation Explorer). Now, I didnt try the timeout yet.. so changing it from 10s to a lower value, I get my error quicker. 🙂

 

It seems like the writing operation does not end properly (for the device).

 

In the documentation, it says that the device is expecting CR+LF+EOI for reads and sending it for writes. Even though I didnt find the option of sending this at all in the GUI (how to append CR + LF??) I concatenated a string using the C interface, containing both the CR+LF. Still, it didnt work.

 

Plus, how shall I do this? Do a string-concat? And to what shall I set the end character?

 

Any ideas on how to do this with either the GUI or programmatically?

 

Many thanks,

diadev

0 Kudos
Message 3 of 4
(3,538 Views)
Solution
Accepted by topic author diadev

For whatever reason, it works fine now.

 

I keep remote asserted, append the cr+lf manually via snprintf.. and even a binary read works fine.

 

so.. for anyone having the same trouble, this is what worked for me:

 

// interface adapter configuration

ibconfig(card, IbcEOSwrt, 0x1);
ibconfig(card, IbcEOSrd, 0x1);
// enable remote mode
ibconfig(card, IbcSRE, 0x1);

 

// binary read (simply don't listen to EOS)

ibconfig(m_ulCard, IbcEOSrd, 0x0);
ibrd(device, (char *)data, size);
// stop reading on EOS char again
ibconfig(m_ulCard, IbcEOSrd, 0x1);

0 Kudos
Message 4 of 4
(3,516 Views)