Example #1
0
        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);
            }
        }
Example #2
0
        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);
        }
Example #3
0
        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);
        }