LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Labview problem for Keithley 238

Hi, I downloaded a sample labview program from Keithley website(please find attached vi) and wanted to use it to control Keithley 238. When I run the sweep, I set "Pulse stop" at 60mA, "Pulse step" at 0.1mA,and "Pulse start" at 0mA. However, everytime I run the program, it cannot reach 60mA(stoped at about 33mA) and the measured voltage I got is zero. Then I changed the "Pulse stop" to 10mA and remain other parameters unchanged, it works and I got the correct I-V curve. The current range I set is 100mA. I am very new to Labview and cannot find what's wrong. Can anyone help me in this?

Any suggestion is greatly appreciated.

Thanks in advance.
0 Kudos
Message 1 of 9
(3,974 Views)
What is your load? If your load impedence is too high, you won't be able to drive above a certain current. If your impedence is too low, you will go into overcurrent quickly, like shorting out the power supply. What type of load does Keithley suggest for this test?
- tbob

Inventor of the WORM Global
0 Kudos
Message 2 of 9
(3,971 Views)
Thank you. The load is 2kΩ, which is within the limits. Another thing is when I change the delay time to longer value, the maximum current it can reach decrease. These problems only happened when Keithley is in remote control. When it is in manual control, I can reach the maximum current I set.
0 Kudos
Message 3 of 9
(3,958 Views)
A few questions:

Have you tried running NI-Spy while your application is running?
Are there any errors occuring?
Have you contacted Keithley about this instrument driver and verified that they have gotten it to successfully run for them?

Let us know!

Logan S.
0 Kudos
Message 4 of 9
(3,952 Views)
I did some ohms law calculations and to push 60mA through a 2K load, the voltage would have to be 120 volts. Is this power supply capable of putting out 120 volts in the pulse mode? If your program stops at 33mA, the voltage should be 66V across 2K load. (You may read 0 volts because the pulse is gone, use a scope). Look at the specs for the instrument. Maybe the max output voltage in pulse mode is less than the max output in DC mode. Make sure your overcurrent and overvoltage settings are appropriate (min 70 mA overcurrent and 140 volts overvoltage). Why does Keithley use the word Compliance for overcurrent (or is it overvoltage)? This makes no sense at all to me.
- tbob

Inventor of the WORM Global
0 Kudos
Message 5 of 9
(3,949 Views)
There is a driver for Keithley 238 on ni.com/idet. You can try to use that driver instead and see if it works better for you. Here is the link:

http://sine.ni.com/apps/we/niid_web_display.download_page?p_id_guid=E3B19B3E9625659CE034080020E74861
Message 6 of 9
(3,927 Views)
I just looked at a manual on the Keithley 238. Its maximum voltage output is 110V. It will never be able to push 60mA of current through a 2K load. That would require 120V which this instrument cannot supply. The most you could get would be 110V/2Kohms = 55mA. And that is driving the source to its maximum. The load should be lowered to 1K, then it would only take 60V to drive 60mA.
- tbob

Inventor of the WORM Global
0 Kudos
Message 7 of 9
(3,920 Views)
Thank you so much for all the information. Actually I changed the load to 1k and the problem is still there. I have contacted Keithley application engineer. They told me to modify two things in the previous attached Labview program:
1. Added frame 0 to include a serial poll. This clear the SRQ line.
2. Added 120 second time out on frame 10. This is the RQS icon.It waits for the SRQ from the Keithley 238 to signify the sweep if complete.

I found it is better now. But when I set the delay time very long(e.g.600ms), still cannot get many points. I am very new to Labview and can anyone explain to me what is SRQ and why we need to include a serial poll?

Thanks a lot.
0 Kudos
Message 8 of 9
(3,911 Views)
Serial poll and SRQ have to do with the GPIB control of the instrument. SRQ stands for Service ReQuest. When sending GPIB commands over the IEEE488 bus, certain bits are set/reset in a register that give information about the bus transactions. One bit can be set if an error occurs. Another bit can be set when an operation is complete, signaling the sender that it is OK to send another command. By polling the bus, you can clear out the status register that holds these bits. If an error occured previously, and you send another command without polling the status register, your new command would probably not get executed. Polling ensures that the line is cleared so that the next command can be sent without some pending action needing to be performed. It gets a lot more complicated. Look up the IEEE488 spec (search the web) if you need more info. Also, many instrument manuals give an overview of status registers, serial polling, and SRQs.
- tbob

Inventor of the WORM Global
Message 9 of 9
(3,907 Views)