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.

Disabling Data logging on 2602a

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
keithleybath
Posts: 1
Joined: April 19th, 2012, 9:12 am
Country: United Kingdom

Disabling Data logging on 2602a

Post by keithleybath » April 19th, 2012, 9:40 am

hello,

I am currently trying to use the 2602a just as a DC pulse output.

I have modified the original factory script PulseVMeasureI, commented relevant lines so 2602 doesn't store the meanured data in the buffer as I need it to run for 30 days at 200Hz.

Code: Select all

function PulseVMeasureI(smu, bias, level, ton, toff, points)
    -- Default to smua if no smu is specified.
    if smu == nil then
        smu = smua
    end

    -- Save settings in temporary variables so they can be restored at the end.
    local l_s_levelv = smu.source.levelv 
    local l_s_rangev = smu.source.rangev
    local l_s_autorangev = smu.source.autorangev 
    local l_s_func = smu.source.func
    local l_m_autozero = smu.measure.autozero
    local l_m_filter = smua.measure.filter.enable
    local l_d_screen = display.screen

    -- Temporary variables used by this function.
    local l_j, l_tonwm

    -- Clear the front panel display then prompt for input parameters if missing.
    display.clear()   
      
    if bias == nil then
        bias = display.prompt(l_volts_fmt, " Volts", "Enter BIAS Voltage.", 0, -l_max_volts, l_max_volts)
        if bias == nil then
            -- Abort if Exit key pressed
            AbortScript(l_d_screen)
        end
    end
    if level == nil then
        level = display.prompt(l_volts_fmt, " Volts", "Enter PULSE Voltage.", 1, -l_max_volts, l_max_volts)
        if level == nil then
            -- Abort if Exit key pressed
            AbortScript(l_d_screen)
        end
    end
    if ton == nil then
        ton = display.prompt("00.000E+00", " Seconds", "Enter pulse ON time.", 20E-3, 0, 20)    
        if ton == nil then
            -- Abort if Exit key pressed
            AbortScript(l_d_screen)
        end
    end
    if toff == nil then
        toff = display.prompt("00.000E+00", " Seconds", "Enter pulse OFF time.", 20E-3, 0, 20)
        if toff == nil then
            -- Abort if Exit key pressed
            AbortScript(l_d_screen)
        end
    end
    if points == nil then
        points = display.prompt("0000000000", " Pulses", "Enter number of pulses", 10, 1, 1000000000)   
        if points == nil then
            -- Abort if Exit key pressed
            AbortScript(l_d_screen)
        end
    end

    -- Update display with test info.
    display.settext("PulsingV")  -- Line 1 (20 characters max)
    
    -- Configure source and measure settings.
    smu.source.output = smu.OUTPUT_OFF  
    smu.source.rangev = level
    smu.source.levelv = bias
    smu.source.func = smu.OUTPUT_DCVOLTS
    --smu.measure.autozero = smu.AUTOZERO_OFF
    --smu.measure.filter.enable = smu.FILTER_OFF
    l_tonwm = ton - (smu.measure.nplc/localnode.linefreq) - 250E-6
        
    -- Setup a buffer to store the result(s) in and start testing.
    smu.nvbuffer1.clear()
    --smu.nvbuffer1.appendmode = 1
    --smu.nvbuffer1.collecttimestamps = 1
    --smu.nvbuffer1.collectsourcevalues = 1

    -- Configure triggering.
    smu.trigger.arm.stimulus = 0
    trigger.timer[1].reset()
    trigger.timer[1].delay = l_tonwm
    trigger.timer[1].count = 1
    trigger.timer[1].stimulus = smu.trigger.SOURCE_COMPLETE_EVENT_ID
    smu.trigger.measure.stimulus = trigger.timer[1].EVENT_ID
    trigger.timer[2].reset()
    trigger.timer[2].delay = ton
    trigger.timer[2].count = 1
    trigger.timer[2].stimulus = smu.trigger.SOURCE_COMPLETE_EVENT_ID
    smu.trigger.endpulse.stimulus = trigger.timer[2].EVENT_ID
    trigger.timer[3].reset()
    trigger.timer[3].delay = toff
    trigger.timer[3].count = 1
    trigger.timer[3].stimulus = smu.trigger.PULSE_COMPLETE_EVENT_ID
    smu.trigger.source.stimulus = trigger.timer[3].EVENT_ID

    smu.trigger.source.linearv(level, level, 1) 
    smu.trigger.source.action = smu.ENABLE
    --smu.trigger.measure.i(smu.nvbuffer1)
    --smu.trigger.measure.action = smu.ENABLE
    smu.trigger.endpulse.action = smu.SOURCE_IDLE
    smu.trigger.arm.count = 1
    smu.trigger.count = points
     
    -- Initiate the pulses
    smu.source.output = smu.OUTPUT_ON
    smu.trigger.initiate()
    delay(toff)
    smu.trigger.source.set()
    waitcomplete()
    delay(toff)
    smu.source.output = smu.OUTPUT_OFF  
    
    -- Update the front panel display and restore modified settings.
    display.setcursor(2,1)             
    display.settext("Test complete.")  -- Line 2 (32 characters max)
    smu.source.levelv = 0
    smu.source.rangev = l_s_rangev
    smu.source.autorangev = l_s_autorangev
    smu.source.func = l_s_func
    smu.source.levelv = l_s_levelv
    smu.measure.autozero = l_m_autozero
    smu.measure.filter.enable = l_m_filter
    delay(2)
    display.clear()
    display.screen = l_d_screen
end
then run it using the following code (a 3Hz run)

Code: Select all

smua.reset()

smua.source.limiti = 2

smua.measure.nplc = 0.1

PulseVMeasureI(smua, 0, 20, 15e-3, 285e-3, 8640000)
it is working fine. but i am looking for a simpler/neater solution.

the requirements are:
to drive 20 volt load
to be able to vary the frequency between 0.01 to 200 Hz. (I am currently doing it by changing nplc value)
i don't need the measured current to be logged by 2602a so i can run it for 30 days straight without exceeding it's onboard memory

I see it looks similarto C: and I would love to learn it, but timeline for my project doesn't allow it.
Can you help?
Thanks

Vince W
Keithley Applications
Keithley Applications
Posts: 108
Joined: September 22nd, 2010, 12:27 pm
Country: United States

Re: Disabling Data logging on 2602a

Post by Vince W » May 22nd, 2012, 3:57 pm

This is not a typical way to use a 2602A source meter, though I believe it is possible. Have you contacted your local Keithley Applications Engineer to check availability for providing services? Here is a link to our sales offices: http://www.keithley.com/company/salesoffices
Image
A Greater Measure of Confidence

Post Reply

Return to “2600 Series SourceMeter”

Who is online

Users browsing this forum: Bing [Bot] and 5 guests