private void btnRun_Click(object sender, EventArgs e) { SwParameter item = new SwParameter(); DMMParameter.MsrtCount = item.SwCount + 1; try { switch (cboMsrDevice.SelectedIndex) { case 0: break; case 1: this._dmmControl.SetTrigger(); break; default: break; } //this._k2601Control.Print(); this._k2601Control.CommunicationBase.SendCmd("reset()\n"); this._k2601Control.SetTrig2(); this._k2601Control.SW(item); this._k2601Control.PulseSweep(item); //this._k2601Control.LoadFunction_FiMv(); //SiMv(10e-3, 8, 0.1e-3) //this._k2601Control.LoadFunction_FvMi2(); //SvMi(0.9, 1.5, 1e-3) } catch (Exception ex) { MessageBox.Show(ex.Message); } }
public void PulseSweep(SwParameter sourceParameter) { double DutyCycle = 0.01; this._script = string.Empty; this._script += "loadscript PulseSweep\n"; //this._script += "beeper.beep(0.5, 2400)" + "\n"; //this._script += "delay(0.250)" + "\n"; //this._script += "beeper.beep(0.5, 2400)" + "\n"; //this._script += "print(10)" + "\n"; this._script += "reset()" + "\n"; this._script += "smua.nvbuffer1.clear()" + "\n"; this._script += "smua.pulser.enable = smua.DISABLE" + "\n"; this._script += "smua.contact.speed = smua.CONTACT_FAST" + "\n"; this._script += "smua.contact.threshold = 100" + "\n"; this._script += "if not smua.contact.check() then"; // Source this._script += " smua.contact.speed = smua.CONTACT_SLOW"; this._script += " rhi, rlo = smua.contact.r()"; this._script += " print(rhi, rlo)"; this._script += " exit()"; this._script += " end" + "\n"; // Measure this._script += "smua.trigger.count = " + sourceParameter.SwCount + 1 + "\n"; this._script += "trigger.timer[1].count = smua.trigger.count - 1" + "\n"; this._script += "trigger.timer[1].delay = " + (sourceParameter.ForceTime / DutyCycle) + "\n"; this._script += "trigger.timer[1].passthrough = true" + "\n"; this._script += "trigger.timer[1].stimulus = smua.trigger.ARMED_EVENT_ID" + "\n"; this._script += "smua.trigger.source.action = smua.ENABLE" + "\n"; this._script += "startValue = " + sourceParameter.StartValue + "\n"; this._script += "endValue = " + sourceParameter.EndValue + "\n"; this._script += "smua.pulser.protect.sensev = " + sourceParameter.LimitV + " "; this._script += "smua.trigger.source.lineari(startValue, endValue, smua.trigger.count)" + "\n"; this._script += "smua.trigger.source.pulsewidth = " + sourceParameter.ForceTime + "\n"; this._script += "smua.trigger.source.stimulus = trigger.timer[1].EVENT_ID" + "\n"; this._script += "smua.trigger.measure.action = smua.ENABLE" + "\n"; this._script += "smua.pulser.measure.delay = " + sourceParameter.ForceTime * 0.6 + "\n"; this._script += "smua.pulser.measure.aperture = " + sourceParameter.ForceTime * 0.2 + " "; this._script += "smua.trigger.measure.v(smua.nvbuffer1)" + "\n"; this._script += "smua.pulser.rangei = 10" + "\n"; this._script += "smua.pulser.rangev = 10" + "\n"; // Reset this._script += "smua.pulser.enable = smua.ENABLE" + "\n"; this._script += "smua.source.output = smua.OUTPUT_ON" + "\n"; this._script += "smua.trigger.initiate()" + "\n"; this._script += "waitcomplete()" + "\n"; this._script += "smua.source.output = smua.OUTPUT_OFF" + "\n"; this._script += "printbuffer(1, smua.nvbuffer1.n, smua.nvbuffer1)" + "\n"; this._script += "endscript\n"; this._communicationBase.SendCmd(this._script); }
public void SW(SwParameter myP) { // // string script = string.Empty; script += "loadscript SW" + "\n"; script += "smua.nvbuffer1.clear()" + "\n"; script += "smua.nvbuffer2.clear()" + "\n"; script += "startValue = " + myP.StartValue + "\n"; script += "stepValue = " + ((myP.EndValue - myP.StartValue) / myP.SwCount) + "\n"; script += "smua.pulser.enable = smua.DISABLE" + "\n"; script += "smua.measure.nplc = " + myP.Nplc + "\n"; script += "smua.measure.rangev = " + myP.MsrRange + "\n"; script += "smua.source.limitv = " + myP.LimitV + "\n"; script += "smua.source.rangei = " + myP.SrcRange + "\n"; script += "smua.source.output = smua.OUTPUT_ON" + "\n"; script += "smua.source.func = 0" + "\n"; script += "smua.measure.overlappediv(smua.nvbuffer1,smua.nvbuffer2)" + "\n";//* //for loop script += "for i = 0, " + myP.SwCount + " do" + "\n"; script += "digio.trigger[2].assert()" + "\n"; script += "smua.source.leveli = startValue + i*stepValue" + "\n"; script += "delay(" + myP.ForceTime + ")\n"; //script += "smua.measure.overlappediv(smua.nvbuffer1,smua.nvbuffer2)" + "\n"; script += "print(i)\n"; script += "print(smua.measure.i())\n"; script += "print(smua.measure.v())\n"; //script += "print(smua.nvbuffer1.n)\n"; //script += "printbuffer(1, smua.nvbuffer1.n, smua.nvbuffer1, smua.nvbuffer2)" + "\n"; script += "waitcomplete()" + "\n"; script += "end" + "\n"; script += "smua.source.leveli = 0" + "\n"; //script += "printbuffer(1, smua.nvbuffer1.n, smua.nvbuffer1, smua.nvbuffer2)" + "\n"; script += "smua.source.output = smua.OUTPUT_OFF" + "\n"; script += "endscript" + "\n"; this._communicationBase.SendCmd(script); }