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.

Check if SMU is Busy Sweeping

Models 2601, 2602, 2611, 2612, 2635, 2636
Models 2601A, 2602A, 2611A, 2612A, 2635A, 2636A
Models 2601B, 2602B, 2604B, 2611B, 2612B, 2614B, 2634B, 2635B, 2636B
Post Reply
BiggyD
Posts: 15
Joined: January 2nd, 2018, 11:37 am
Country: United States

Check if SMU is Busy Sweeping

Post by BiggyD » June 20th, 2018, 2:47 pm

I'm using VB.NET and I'm send the following to my 2636B:
myInstr.IO.WriteString("smua.trigger.source.linearv(.01, 1, 11)")
myInstr.IO.WriteString("smua.trigger.source.action = 1")
myInstr.IO.WriteString("smua.trigger.count =20")
myInstr.IO.WriteString("smua.trigger.source.limitv = 2")
myInstr.IO.WriteString("smua.source.delay = .1")
myInstr.IO.WriteString("smua.trigger.endsweep.action = smua.SOURCE_IDLE")
myInstr.IO.WriteString("smua.trigger.arm.count = 2")
myInstr.IO.WriteString("smua.trigger.initiate()")
myInstr.IO.WriteString("waitcomplete()")

This works fine, but I need to wait until the sweep is done before moving on to the next command. How can I check to see if the sweep is done? :?:
Thanks

brian.d.smith
Keithley Applications
Keithley Applications
Posts: 402
Joined: June 10th, 2013, 6:00 am
Country: United States

Re: Check if SMU is Busy Sweeping

Post by brian.d.smith » July 5th, 2018, 7:01 am

From the Reference Manual page 3-30

To start a sweep, use the smuX.trigger.initiate() function. Sweeps are overlapped
operations, so you can use the waitcomplete() function as a way to suspend further operation
until the sweep is complete.

BiggyD
Posts: 15
Joined: January 2nd, 2018, 11:37 am
Country: United States

Re: Check if SMU is Busy Sweeping

Post by BiggyD » July 5th, 2018, 9:48 am

Here's the solution:
Do
'retreive sweep status and place into buffer
myInstr.IO.WriteString("print(status.operation.sweeping.condition)")
'read buffer
statusInt1 = Val(myInstr.ReadString())
'retreive measurement status and place into buffer
myInstr.IO.WriteString("print(status.operation.measuring.condition)")
'read buffer
statusInt2 = Val(myInstr.ReadString())
'if either sweep or measurement is still in progress, continue loop
If statusInt1 = 0 And statusInt2 = 0 Then Exit Do
Loop

Post Reply

Return to “2600 Series SourceMeter”

Who is online

Users browsing this forum: No registered users and 3 guests