Jump to content

Keithley 3706A automation

Recommended Posts


I am trying to get my Keithley3706A up and running with LabVIEW but there are still some problems I am facing.



I want to measure x channels with usage of filter.

So I want to measure each channel x times and filter the results.


I have found some functions like:

dmm.filter.enable = True

dmm.filter.count = 100

dmm.filter.type = dmm.FILTER_REPEAT_AVG

dmm.filter.window =0,1


but it seems it still wont work.


I am using the vi's Keithley itself provides on their homepage.


Another problem I have is that I cant get more than 9 values into my buffer, for example if i want to create a scanlist with 1001:1010 I only get one value. If i create my scanlist with 1001:1009 it works just fine.


I could not find any reference to this problem by now.



thanks in advance


Link to post
Share on other sites
  • 2 years later...

I'm also learning/using a 3706A with Labview, and might be able to provide some insight.  

There are two main ways to programmatically take measurements (that I'm aware of).  Calling the DMM directly, with dmm.measure(), and using the Scan Model with scan.execute().


When you create a scan, scan has two properties that will determine how many readings you will take.  scan.scancount, and scan.measurecount.

Scan.scancount = how many times to run the scan

Scan.measurecount = how many measurements to take per channel per scan


Also, make sure you set the buffer size to appropriate number with bufferVar = dmm.makebuffer(n),  and set the buffer to append with bufferVar.appendmode = 1 (actually, this may not be necessary on a single scan).  dmm.measurecount is how many filtered (in your case) measurements to take when you execute dmm.measure(bufferVar).  


When you set the dmm.filter.count, that is for how many readings to take to create one filtered reading, using dmm.filter.type.   You apply dmm configurations to channels, and then implement a scan to iterate over the channels in the scan list.    You don't have to use a scan, you could directly call dmm.measure(bufferVar) 


The 3706A also has Lua, a scripting language, on it.  Personally,  I'm using scripts that define Scan methods, which I can pass parameters (like the channel list, scan count, etc), to execute scans flexibly, and then reading the buffer back.   In Labview, I'm using the Script Execute .vi to execute the scripts. 


Let me know if this information makes sense :)  



edit : Oh, this is from 2015... :(

Edited by chriscoxtx
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Similar Content

    • By Stormshadow
      I'm reading a sine wave generated by a AO DAQ and reading this same signal with another AI DAQ and a DMM at the same time.
      AO is set at 0.65V
      AI RMS reads 0.5V±0.0056
      DMM reads 0.46053V ± 0.00001
      0.65/1.414=0.46 so the DMM read is accurate.
      What makes the RMS LabVIEW function not reporting the accurate information? Could it be the Glitch Energy affecting the read?
      On a side note, I also need an accuracy of 0.2%.
      AO generates a 3KHz signal at 0.65V (450KS/s @ 150S/Buffer).
      AI reads at 90KS/s at 15KS/channel.
      DMM a 34401A is set VAC.

    • By Stormshadow

      The 34401A is not longer available in Canada. We need to change and use the 34461A as a replacement and we are having trouble with the peak-to-peak measurements (We are using LabVIEW).

      We use the peak-to-peak option while reading a communication line in order to get the min and max values. The code:

      Visa Write


      Visa Read

      Visa Write


      Visa Read

      This code no longer works with the 34461A. Reading the AC will only give the RMS values. We dont really care how to get the min-max of the communication channel, as long as it is in a respectable time (10s at most...). Reading the signal with DC is not fast enough. The communication signal is ±100mv. We verify the min-max range to be around 200mV.

  • Create New...

Important Information

By using this site, you agree to our Terms of Use.