• RE: Test post

    test inline
  • RE: How do I get Kickstart for a DAQ6510

    Now that is very odd... that's the correct URL. I will send this to our web team.
  • RE: How do I get Kickstart for a DAQ6510

    Can you share any of those broken links?

    From the KickStart product page: https://www.tek.com/en/products/keithley/keithley-control-software-bench-instruments/kickstart

    Select the "Software License Options" tab, then you can select the App/Apps you want (I would guess Data Logger for your DAQ6510). Use Add to Quote and you'll be able to get a quote from there.
  • RE: Get the current Text of the Display

    Hmm, there is not a command to get arbitrary text on the front panel of the 2635B. As you found, display.gettext() is only for the user screen set by display.settext(). Things like measurements, source values, and settings are meant to retrieved with their own commands. That is probably better for a remote display anyway so you can always poll important parameters rather than relying on what the 2-line display shows.
  • RE: How to synchronize two 2460 SMUs and a Keysight DMM

    Oh good! I had read through your post but hadn't looked at the code yet. Glad you figured it out! Autozero is a very common setting to trip people up when trying to do time dependent measurements.

    We do recommend using the Autozero Once command (AZER:ONCE) immediately before your test and periodically or when you have gaps in your test for the best accuracy.

  • RE: tsp command to append to list | listv measurement | buffer overrun error

    How many voltage points are we talking about?

    My first thought is to try sending the list to the SMU separately as new array, breaking it up if needed. In pseudocode:
    writeline(K2412B, strjoin({'vlist=',VliststrPart1)});
    writeline(K2412B, strjoin({'vlist=vlist..',VliststrPart2)});
    writeline(K2612B, strjoin({gate_smu,'.trigger.source.listv(vlist)'}));

    (".." is the concatenation function in TSP/Lua.)
  • RE: Inconsistent sampling rate when NPLC is greater or equal to 5

    Autozero measures at the same nplc as the measurement it's taking a reference for, so I would expect it to ~double the reading time of measurement.

    There are a number of things that dictate when autozero measurements happen, but larger nplc will generally cause them to happen more often, perhaps even every measurement. Larger nplc reduce external error factors so the DMM attempts to reduce internal error factors by autozero-ing more often. Also, autozero measurements are considered valid for some amount of time independent of the nplc setting, so larger nplc will burn through that valid time after fewer readings. Temperature is another factor and autozero frequency can be impacted by the system uptime.

  • RE: Inconsistent sampling rate when NPLC is greater or equal to 5

    Some TSP code and results to check this:

    dmm.measure.autozero.enable = dmm.OFF
    dmm.measure.count = 2
    for i = 1, 10, 1 do
        dmm.measure.nplc = i
        dmm.measure.read()
    
        diff = defbuffer1.relativetimestamps[defbuffer1.n] - defbuffer1.relativetimestamps[defbuffer1.n-1]
        diff = diff*1000
        print("sample period ="..16.67*i.." , actual time = "..diff.."nplc = "..i)
    end

    sample period =16.67 , actual time =16.706666 nplc =1
    sample period =33.34 , actual time =33.368485 nplc =2
    sample period =50.01 , actual time =50.038273 nplc =3
    sample period =66.68 , actual time =66.703666 nplc =4
    sample period =83.35 , actual time =83.374394 nplc =5
    sample period =100.02 , actual time =100.037848 nplc =6
    sample period =116.69 , actual time =116.704788 nplc =7
    sample period =133.36 , actual time =133.37103 nplc =8
    sample period =150.03 , actual time =150.036636 nplc =9
    sample period =166.7 , actual time =166.704273 nplc =10

    dmm.measure.autozero.enable = dmm.ON
    dmm.measure.count = 2
    for i = 1, 10, 1 do
        dmm.measure.nplc = i
        dmm.measure.read()
    
        diff = defbuffer1.relativetimestamps[defbuffer1.n] - defbuffer1.relativetimestamps[defbuffer1.n-1]
        diff = diff*1000
        print("sample period ="..16.67*i.." , actual time = "..diff.."nplc = "..i)
    end

    sample period =16.67 , actual time =16.707213 nplc =1
    sample period =33.34 , actual time =33.373909 nplc =2
    sample period =50.01 , actual time =50.040182 nplc =3
    sample period =66.68 , actual time =66.704819 nplc =4
    sample period =83.35 , actual time =168.76 nplc =5
    sample period =100.02 , actual time =202.091 nplc =6
    sample period =116.69 , actual time =235.426 nplc =7
    sample period =133.36 , actual time =268.759 nplc =8
    sample period =150.03 , actual time =302.093 nplc =9
    sample period =166.7 , actual time =335.427 nplc =10

  • RE: Inconsistent sampling rate when NPLC is greater or equal to 5

    Hi there, I'm guessing autozero was on?

    The reference measurements will insert themselves wherever the unit decides, so you should always turn off autozero for tight timing control (and manually take them with dmm.measure.autozero.once() ).
  • RE: DAQ6510 TSP command buffer.getstats() number of max values

    Ah glad you found a solution!

    I would think it would be faster to do the search on the instrument using the TSP engine, did you try that? Unless you needed all the readings on your PC anyway. Or it sounds like things are running fast enough for you already.

    This TSP code searches through defbuffer1 to find all instances of num within a tolerance (since defbuffer1[i] returns more digits than the measurement resolution).

    function countInstance(num, tolerance)
        local count = 0
        local high = num + tolerance
        local low = num - tolerance
    
        for i = 1, defbuffer1.n do
            if high > defbuffer1[i] and defbuffer1[i] > low then
                count = count+1
            end
        end
    
        return count
    end

    After putting this function on your DAQ6510, you simply run print(countInstance(num, tolerance)) to return the count to the terminal.