I found a C# wrapper for the IVI library at http://forums.ni.com/t5/Measurement-Stu ... -p/1246780
In the principle it should not matter whether I use Visual Basic or C#. The dll-file is the same.
The problem is that I cannot find information on which calls to make to do the IV-trace. Currently my code looks like this:
Code: Select all
IVresult = new double; // Array for results
int Read_points; // Read back actual number of measurements.
int error_meas; // Read out error codes for debugging at break points
error_meas = Keithley2400.Keith.Configure_Sweep_VI(ke2400Constants.SweepRangeAuto, ke2400Constants.Linear, ke2400Constants.SweepDirUp, 1, 20, -10, 10, 1001, 0.1, 1);
error_meas = Keithley2400.Keith.ConfigureMultiPoint(1,1,ke2400Constants.Immediate,0);
error_meas = Keithley2400.Keith.ReadMultiPoint(20000, 1001, IVresult, out Read_points);
The code generates an exception in the third line saying that the compliance level is too small for the measurement range. I do not know how to change the level since it is set to autolevel.
My questions are:
- where is the documentation for the IVI-driver - in particular:
- where do I find a list of calls which must be carried out in order to perform a measurement like IV-tracing.
- how do I set the range if using fixed range instead of autorange?
- can You provide me with sample code for an IV-tracer using the IVI driver.
I include the Agilent IO monitor log, so You may see which commands are actually flowing. The log stops where the exception is thrown.
I should note that the 2400 is running firmware C22. It will not upgrade to C32 over GPIB.