Tektronix Technical Forums are maintained by community involvement. Feel free to post questions or respond to questions by other members. Should you require a time-sensitive answer, please contact your local Tektronix support center here.
Doing solar cell characterization (tried both Keithley 2400 & 2430 ) which has 3 steps. ( 1. A single voltage measurement, 2. Current sweep while sourcing voltage with 120 points measuring I & V, 3.Single point current measurement.) Step 1 and 2 work just fine. However, upon running step 3, the bus hangs during the measurement step. However, if I break the code after the sweep in step 2, cycle the power on the meter, and continue the code, step 3 works just fine...no bus hanging at all.
I have tried to clear my buffer between steps, clear all registers, clear all error and message queues, close the connection, use the reset command, disable triggering, etc... between steps 2 and 3 to "emulate" cycling the power but none of that works. I would like to send a Device Clear or Interface Clear command between steps two and 3 but cannot figure out the VB syntax to do it with VISA and the Keithley 24xx driver. Any ideas?
Card: Contec GPIB PCI Card running NI-VISA compliant drivers
Hardware: Keithley 2400 source meters (tried 2 x 2400's and 1 x 2430...same problems) set up for SPCI
Firmware: Versions 27 and 30
Driver: Keithley 24xx driver, latest version as of 2 weeks ago
Code: VBA & VB 6
Other Items of note:
1. During the current sweep (step 2), I am using a SRQ enable and serial polling to tell when the current sweep is finished. I have seen in the release notes of the 2400 that using RS232 and Serial polling, can hang the bus. (I am not using RS232 and I thought was fixed with firmware versions after 25 anyway....)
2. If, after the bus hangs, I reboot my computer releasing the bus (but leave the meter running), and then check the LAST INSTRUMENT ERROR (which may or may not be valid), I get an error that says: "A specified user buffer is either unavailable or invalid for this size." I have taken that to mean that perhaps the code is trying to read a multipoint array into a single point variable but I don't see how that's possible. I also thought that perhaps the meter's buffer is full (even though I'm only taking 120 points.) I've read the buffer and all points after number 120 are zero so I don't think that's it either.
3. I don't think its an autoranging or compliance issue either. The compliance values are set far above the current and voltage settings. It wouldn't explain a bus hang up anyway I don't believe. Those should at least throw an error, not hang the bus.
- Keithley Applications
- Posts: 1263
- Joined: October 15th, 2010, 10:35 am
- Country: United States
Have you tried VISA command such as:
status = viGpibControlREN(sesn, VI_GPIB_REN_DEASSERT_GTL)
I'm not sure if VI_GPIB_REN_DEASSERT_GTL is the mode value you are looking to use? Use the object browser in VB and the VISAOtherDefinitions has the full list.
Thanks for the reply. I only had the Ke_24xx drivers as a reference in my VBA project. I added VISA32.dll as a reference and now I see many more commands at my disposal including the one you referenced.
I tried viGpibControlREN with the VI_GPIB_REN_DEASSERT_GTL as the mode. It does indeed take the Keithley 2400 from REMOTE mode to LOCAL. However, the bus is still hanging in the same place in the code. The IV curve sweep works just fine. But then after clearing the machine in every fashion I can think of, reinitializing, and running a single point measurement, it hangs up. If I skip the sweep, I'm fine.
Any other ideas as what is causing this or another possible workaround I could try? I'm out of ideas.
Who is online
Users browsing this forum: No registered users and 2 guests