float IIPowerSupply.MeasV(string strSelection, EPSupplyChannel channel, EPSupplyVRange vRange)
        {
            float val = -999;

            Readvoltagevolt((int)channel, out val);
            return(val);
        }
        float IIPowerSupply.MeasV(string strSelection, EPSupplyChannel channel, EPSupplyVRange vRange)
        {
            float vmeas = -999;

            vmeas = SmuResources[strSelection].MeasureVoltage(channel, vRange);
            return(vmeas);
        }
        public float MeasureVoltage(EPSupplyChannel channel, EPSupplyVRange vRange)
        {
            double[] volt = new double[4];
            int      ret  = 0;

            ret += Smu.Measure(((int)channel).ToString(), PxiSmuConstants.MeasureVoltage, volt);
            return((float)volt[0]);
        }
Esempio n. 4
0
 float IIPowerSupply.MeasV(string strSelection, EPSupplyChannel channel, EPSupplyVRange vRange)
 {
     try
     {
         _myVisaKeithley.IO.WriteString("print(smu" + channel.ToString() + ".measure.v())");
         return((float)Convert.ToDouble(_myVisaKeithley.ReadString()));
     }
     catch (Exception ex)
     {
         throw new Exception("KeithleySMU: MeasV -> " + ex.Message);
     }
 }
        public void SetVoltage(EPSupplyChannel channel, double volt, double iLimit, EPSupplyVRange EvRange)
        {
            double vRange = 0;

            switch (EvRange)
            {
            case EPSupplyVRange._1V:
                vRange = 1; break;

            case EPSupplyVRange._10V:
                vRange = 10; break;

            case EPSupplyVRange.Auto:
                vRange = 10; break;
            }
            Smu.ConfigureOutputFunction(((int)channel).ToString(), PxiSmuConstants.DVCI);
            Smu.ConfigureCurrentLimit(((int)channel).ToString(), 0, iLimit);
            Smu.ConfigureVoltageLevelAndRange(((int)channel).ToString(), volt, vRange);
        }
Esempio n. 6
0
 private double VRange_String(EPSupplyVRange val)
 {
     if (val == EPSupplyVRange.Keith260X100MV)
     {
         return(100e-3);
     }
     if (val == EPSupplyVRange.Keith260X_1V)
     {
         return(1);
     }
     if (val == EPSupplyVRange.Keith260X40V)
     {
         return(40);
     }
     if (val == EPSupplyVRange.Keith260X_6V)
     {
         return(6);
     }
     if (val == EPSupplyVRange.Keith261X200MV)
     {
         return(200e-3);
     }
     if (val == EPSupplyVRange.Keith261X200V)
     {
         return(200);
     }
     if (val == EPSupplyVRange.Keith261X20V)
     {
         return(20);
     }
     if (val == EPSupplyVRange.Keith261X_2V)
     {
         return(2);
     }
     if (val == EPSupplyVRange.Auto)
     {
         return(999);
     }
     else
     {
         return(0);
     }
 }
 void IIPowerSupply.SetVolt(string strSelection, EPSupplyChannel channel, double volt, double iLimit, EPSupplyVRange vRange)
 {
     SmuResources[strSelection].SetVoltage(channel, volt, iLimit, vRange);
 }
Esempio n. 8
0
 private void VSourceSet(EPSupplyChannel val, double dblVoltage, double dblClampI, EPSupplyVRange range)
 {
     try
     {
         _myVisaKeithley.IO.WriteString("smu" + val.ToString() + ".source.func = smu" + val.ToString() + ".OUTPUT_DCVOLTS");
         if (range != EPSupplyVRange.Auto)
         {
             _myVisaKeithley.IO.WriteString("smu" + val.ToString() + ".source.rangev = " + VRange_String(range).ToString());
         }
         else
         {
             VSourceAutoRange(val, true);
         }
         _myVisaKeithley.IO.WriteString("smu" + val.ToString() + ".source.limiti = " + dblClampI.ToString());
         _myVisaKeithley.IO.WriteString("smu" + val.ToString() + ".source.levelv = " + dblVoltage.ToString());
     }
     catch (Exception ex)
     {
         throw new Exception("KeithleySMU: VSourceSet -> " + ex.Message);
     }
 }
Esempio n. 9
0
        void IIPowerSupply.SetVolt(string strSelection, EPSupplyChannel channel, double volt, double iLimit, EPSupplyVRange vRange)
        {
            try
            {
                _myVisaKeithley.IO.WriteString("smu" + channel.ToString() + ".source.func = smu" + channel.ToString() + ".OUTPUT_DCVOLTS");

                VSourceAutoRange((EPSupplyChannel)channel, true);

                _myVisaKeithley.IO.WriteString("smu" + channel.ToString() + ".source.limiti = " + iLimit.ToString());
                _myVisaKeithley.IO.WriteString("smu" + channel.ToString() + ".source.levelv = " + volt.ToString());
            }
            catch (Exception ex)
            {
                throw new Exception("KeithleySMU: iPowerSupply.SetVolt -> " + ex.Message);
            }
        }
        public float MeasV(string strSelection, IIPowerSupply[] eqPSupply, float nplc, EPSupplyVRange vRange)
        {
            float measVal = -999;

            PSupply_Selection(strSelection, eqPSupply, out _objPs, out _eChannel, out _eModel);
            SetNplc(strSelection, eqPSupply, nplc);
            measVal = _objPs.MeasV(strSelection, _eChannel, vRange);

            return(measVal);
        }
        void IIPowerSupply.SetVolt(string strSelection, EPSupplyChannel channel, double volt, double iLimit, EPSupplyVRange vRange)
        {
            if ((int)channel < 8)
            {
                if (volt > 0)
                {
                    Drivevoltage((int)channel, (int)(volt * 1000), 1);
                }
                else
                {
                    Drivevoltage((int)channel, (int)(volt * 1000), 0);
                }

                Clampcurrent((int)channel, (int)(iLimit * 1000000000));
            }
            else
            {
                AM371_DRIVEVOLTAGE((int)channel, (float)volt);
                AM371_CLAMPCURRENT((int)channel, (float)iLimit);
            }
        }
 float IIPowerSupply.MeasV(string strSelection, EPSupplyChannel channel, EPSupplyVRange vRange)
 {
     throw new NotImplementedException();
 }