Instrument Control (GPIB, Serial, VISA, IVI)

cancel
Showing results for 
Search instead for 
Did you mean: 

EABO errors in IBIC, but commmand goes through.

Hello

I created a C program, using SuSE linux 8.2 on the 2.4.20 kernel, to talk to an Agilent E3641A power supply, however it kept erroring on me with a Time out on every command.  I am using an AT-GPIB/TNT ISA board, so I downloaded the nigpib-linux-0.8.6 tar and installed it.  To try and see if I could fix this I first ran the ibsta program to make sure the board was working properly, which it did as it passed the test.  So then I started to use the IBIC to run by each command to make sure what would work and what doesn't.  I followed the ni guide here: http://www.ni.com/support/gpib/max/ibic.htm. 

The power supply uses the EOI, or EOS to determine the end of each command.  The EOS in the manual is a line feed character, so I made sure that is what I set it to: 0x0A.  Also when I did the ibwrt command I terminated them with a \n.  The weird part is that, each command I write to the power supply does go through.  I just need to wait apprimately 5 seconds, then it times out, gives me back an EABO error, and the proper byte count.  So if I follow the guide, and then in ibic once the power supply is listening, if I type iwrt "*IDN?\n", I wait 5 secs., and then gives the EABO error and a byte count of 6.  Then I can issue the ibrd 100 command, and I will once again wait 5 secs, then after timing out it will give me the EABO, proper byte count, and the poewr supply identification string.  If I do other command such as setting the power supply voltage levels, it will also time out giving me the EABO error, but the power supply will also still set itself to the proper voltage level.  What could be wrong?  Help!

Thanks
0 Kudos
Message 1 of 5
(3,827 Views)
Hi Heiwa,
Can you tell me how you are setting the termination?  Maybe you can post a snippet of the code you use when you see the error?  To tell what is going on, we will need to see how you open the handle and how the write and read are called.
 
Please provide this information and we can go from there.
 
Have a great day!
Chris R.
Applications Engineer
National Instruments
0 Kudos
Message 2 of 5
(3,799 Views)
Currently for debugging purposes I was using the ibic program.  What I typed in was:

ibfind gpib0
ibpad 0
ibrsc 1
ibsic
ibsre 1
ibln 1 0
ibdev 0 1 0 13 1 0x040A

Until that point is fine, and the device goes into remote mode and is listening.
Next I can type in:
ibwrt "*IDN?\n"

Then it prints back the EABO error, and the byte count of 6.

Than I can type in:
ibrd 100

And it will once again give the EABO error, the proper byte count, and it will print the Identification of the device.  So everything is talking...but it still times out.

I have also tried:
ibwrt "*IDN?\0\n"
ibwrt "*IDN?\r\n"
ibwrt "*IDN?\r"

and they all come back with the EABO error...but if I use one of those commands the ibrd command will print nothing back after timing out.  The product manual says the EOS is a new line character.

Thank you for your reply
0 Kudos
Message 3 of 5
(3,800 Views)
Hey Heiwa,
 
Something I was curious, is could you open up Measurement and Automation Explorer, and try to perform the query command through that, and try to simulate what NI-Spy displays as the method of calling the command?
 
 

Message Edited by Nick D on 06-11-2007 09:43 AM

0 Kudos
Message 4 of 5
(3,777 Views)
Hello

Thanks for all the help, but I was able to solve my problem.  The problem was in my BIOS.  The ISA/PCI mapping was set all to PNP, however just by changing the proper interrupt and DMA to Legacy ISA instead of PNP made everything work.  Also is there Measurement and Automation Explorer and NI-Spy for Linux on the 2.4 kernel, without KDE or GNOME installed? 

But yeah...thanks for all the help!

0 Kudos
Message 5 of 5
(3,768 Views)