Instrument Control (GPIB, Serial, VISA, IVI)

cancel
Showing results for 
Search instead for 
Did you mean: 

reading problem with gpib pc-II/IIa card

Hi,
I had a system running win3.11(yes its old) with a gpib pcII/IIa card and a Keithley SM236 source measure. Everything was running smoothly.

I upgraded my system and tried to use a win98 machine with the same hardware and NI488.2 version 1.7.
With the sm236 we can program a sweep and then we read the values in the internal buffer by successive ibrd calls. The sm236 is programmed to send only a line of sweep data per reading.

something like this code snippet:

PRINT #1, "OUTPUT 16;N0X"               ' Turn off 236 output.
FOR I = 1 TO 101                        ' Loop for all 101 readings.
PRINT #1, "ENTER 16"                    ' Address 236 to talk.
INPUT #2, RX(I), RY(I)                  ' Input current and voltage readings.
NEXT I 

The problem is that after the first read (i see the first sweep data, the TALK LED remain ON) I get a timeout because apparently the sm236 has no more data to send (or it sent in the meantime all the data it had)
However if after the read call (the Talk LED is on) I write something to the sm236 (the listen LED lights up)

PRINT #1, "OUTPUT 16;N0X"               ' Turn off 236 output.
FOR I = 1 TO 101                        ' Loop for all 101 readings.
PRINT #1, "ENTER 16"                    ' Address 236 to talk.
INPUT #2, RX(I), RY(I)                  ' Input current and voltage readings.
          PRINT #1, "OUTPUT 16;N0X"               ' Turn off 236 output.
NEXT I 

then it works fine but the data transfer takes a long time.
I tried to configure the pcII card to end read on EOS al all the other choices with no luck.
It seems that something is wrong with the end of the reading command.
Can anyone give me a hint?
Thanks
JMSerra

0 Kudos
Message 1 of 3
(3,174 Views)
You should confirm the EOS on Read settings, which applies to READ operation.  It can be done on the Control Panel GPIB configuration or from NI-MAX.  If your instrument sends the response data back with ASCII termination (such as CR, LF, or CRLF) and without EOI signal, reading operation may timeout.  The settings can be done by your program code, but in many cases it may be left as default setting by PC's Control Panel or NI-MAX did. 
 
Good luck
Makoto
0 Kudos
Message 2 of 3
(3,144 Views)

Hi,

Thanks for your reply.

I did check with NI-MAX in the configuration of the controller board that it should end reading with EOS. My instrument asserts by default EOI. I specified the terminating char also in the controller config. By inspecting the read string I see the terminating char.

I was expecting to see a similar window for my instrument (I think it is called device templates) but the GPIB window configuration has no othet tab besides the one for the controller.

So in brief, in the reading loop I mentioned in my message I do read the first line of sweep data but it seems that the instrument does not recognise that the read operation is completed and so when the next reading order arrives it gives a timeout during the reading operation. If between reading calls I send a write order to the instrument than the next reading order is correctly understood by the instrument. The only thing is that data reading takes a long time to finish.

I am using the same hardware (only a different op. system) so there is something not correct in my gpib configuration. Is the gpib configuration written in some sort of *.ini settings? Why don't I see the device templates tab?(I checked also through control panel/system). Version 1.7 of ni488.2 does not have it?

Anyway thanks for your time

João Serra

 

 

 

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