LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Scan Keithley 2400 via PXI-2503. Need an example code.

Solved!
Go to solution

Hello,

I need to scan 10 channels with a Keithley 2400 sourcemeter via PXI-2503 multiplexer. It is going to be 4-wire resistance measurement. Does anyone know where can I get a suitable example of the code? Thanks.

0 Kudos
Message 1 of 10
(2,868 Views)

Keithley 2400 LabVIEW driver is here - http://sine.ni.com/apps/utf8/niid_web_display.model_page?p_model_id=1583

 

Within the driver are example for autoranging ohm measurements using 4 wires.

 

Before measuring you will need to switch 4 channels of your PXI-2503. There are examples in NI-Switch for the PXI-2503.  Use NI Example Finder in LabVIEW and search for NI-SWITCH.

 

Combine the two examples and you should be good.

0 Kudos
Message 2 of 10
(2,841 Views)

cstorey, thank you for a quick reply.

My difficulty is in synchronisation of a switch and a sourcemeter. Could you please take a look at the attached VI? Are there any obvious mistakes? I need to constantly scan 10 channels.

Thanks

0 Kudos
Message 3 of 10
(2,827 Views)

A couple of things. 

 

1) The switch+DMM example you copied from has a TTL line triggering the DMM measurement, but that doesn't happen with the Keithley unless you have a external trigger cable somehow.  So you will need to trigger the Keithley in software.

 

 

 

2) You want to constantly scan the 10 channels doing 1 measurement per channel?  Then you need to change the Keithley 2400 measurement triggering setup from what you have.  Right now you have it firing once and measuring 10 times, not firing once per channel and measuring X per channel.  You will also need to configure the Keithley to use software trigger.

 

3) Are you doing resistance measurements?  What current voltage limit?  The Keithley 2400 has a nice Autoranging Ohms feature you could use.  It scales the current up with a small fixed voltage limit to get the best resistance measurement.  I can supply code for that.

 

4) You should zero the Keithley timer before you start measurements.  Its just a count of seconds since the SMU was turned on, and it can roll over to 0 again if this runs for a really long time.  In which case getting the time from the PC would be a better idea.  You'd have to read up on the limits of the timer.

 

The attached tries to fix the triggering of the switch and SMU (#1 and #2). Let me know the measurement requirements for #3, and you can research or decide on #4 but I included a VI I use to reset the timestamp so at least the first measurement looks like it happens near 0s.

 

0 Kudos
Message 4 of 10
(2,817 Views)

cstorey,

thanks a lot for your explanation.

Unfortunately I cannot open the attached files as they are in LabView 2017. Could you please save them in 2015 version? Thank you.

I'm measuring resistance in a known range (700-5000 Ohm). I'm going to set current source to as low value as possible to reduce heating. It is important in cryogenic environment. The current will be somewhere in a range 10nA-1uA.

0 Kudos
Message 5 of 10
(2,815 Views)
0 Kudos
Message 6 of 10
(2,812 Views)

cstorey,

Thank you very much. Your files helped. 

 

0 Kudos
Message 7 of 10
(2,805 Views)

>> Now VI gives a message -211 "Trigger ignored" and I cannot understand why. Do you have an idea? 

 

Which trigger?  Can you use Debugging mode to step through the code and tell me if its the Switch or SMU/DMM trigger that is the issue.

 

If you've modified code, then repost.

 

Craig

0 Kudos
Message 8 of 10
(2,798 Views)
Solution
Accepted by topic author m@NI_forum

Craig, sorry, I edited my previous message without knowing you replied to it (or we did it simultaneously). I found a problem. Keithley24xx Initiate.vi has to be inside the while loop. Please see a modified VI attached.

 

 

0 Kudos
Message 9 of 10
(2,785 Views)
Solution
Accepted by topic author m@NI_forum

Yes, if you are only going to arm the trigger once, not some large number of times (250,000) then initiate needs to be inside.  But the Enable Output doesn't need to be in the loop, notice disable is outside, so its redundant to try to enable every iteration.  

 

Good luck with everything.

Craig

0 Kudos
Message 10 of 10
(2,742 Views)