public Am471E(string visaAlias, string chanNumber, string pinName, bool reset) { try { this.VisaAlias = visaAlias; this.ChanNumber = chanNumber; this.PinName = pinName; Smu = new PxiSmu(visaAlias, "0", 0xf, "Simulate=0, DriverSetup=Model:AM471e"); int ret = 0; ret += Smu.Reset(); ret += Smu.ConfigurePowerLineFrequency(50); ret += Smu.ConfigureOutputTransient("0", 1); ret += Smu.ConfigureSamplingTime("0", 0.1, 1); ret += Smu.ConfigureSense("0", PxiSmuConstants.SenseRemote); ret += Smu.ConfigureOutputFunction("0", PxiSmuConstants.DVCI); ret += Smu.ConfigureCurrentLimit("0".ToString(), 0, 100e-3); ret += Smu.ConfigureVoltageLevelAndRange("0", 0, 1); //ret += smu.ConfigureVoltageLevel("0", 0); ret += Smu.ConfigureOutputSwitch("0", 1); } catch (Exception e) { MessageBox.Show(e.ToString(), "SMU Initialize"); } }
static void Main(string[] args) { double[] curr = new double[4]; double[] volt = new double[4]; PxiSmu smu = new PxiSmu("PXI52::0::INSTR", "0-3", 0xf, "Simulate=0, DriverSetup=Model:AM430e"); smu.ConfigurePowerLineFrequency(50); smu.ConfigureSamplingTime("0-3", 1, PxiSmuConstants.UnitPowerLineCycles); smu.ConfigureOutputTransient("0-3", 1); smu.ConfigureSense("0-3", PxiSmuConstants.SenseRemote); smu.ConfigureOutputFunction("0-3", PxiSmuConstants.DVCI); smu.ConfigureCurrentLimit("0-3", 0, 100e-6); smu.ConfigureVoltageLevel("0-3", 0); smu.ConfigureOutputSwitch("0-3", 1); delay_s(1e-3); smu.ConfigureVoltageLevel("0-3", 3.3); delay_s(1e-3); smu.Measure("0-3", PxiSmuConstants.MeasureVoltage, volt); smu.Measure("0-3", PxiSmuConstants.MeasureCurrent, curr); for (int i = 0; i < 4; i++) { Console.WriteLine("curr[" + i + "]: " + curr[i] + "; volt[" + i + "]: " + volt[i]); } smu.ConfigureVoltageLevel("0-3", 0); delay_s(1e-3); smu.ConfigureOutputSwitch("0-3", 0); Console.ReadLine(); }