def startup(self): log.info("Setting up Multimeters") self.mm1 = Keithley2000(self.mm1_address) self.mm2 = Keithley2000(self.mm2_address) self.mm3 = Keithley2000(self.mm3_address) self.mm4 = Keithley2000(self.mm4_address) if self.mm1_measurement: self.mm1.measure_voltage(self.mm1_range) else: self.mm1.measure_current(self.mm1_range) if self.mm2_measurement: self.mm2.measure_voltage(self.mm2_range) else: self.mm2.measure_current(self.mm2_range) if self.mm3_measurement: self.mm3.measure_voltage(self.mm3_range) else: self.mm3.measure_current(self.mm3_range) if self.mm4_measurement: self.mm4.measure_voltage(self.mm4_range) else: self.mm4.measure_current(self.mm4_range) log.info("Setting up Thermocouple") self.mm2.voltage_nplc = 1 # Integration constant to Medium self.mm3.voltage_nplc = 1 # Integration constant to Medium self.mm4.voltage_nplc = 1 # Integration constant to Medium sleep(2)
def startup(self): log.info("Setting up instruments") self.meter = Keithley2000("GPIB::25") self.meter.measure_voltage() self.meter.voltage_range = self.voltage_range self.meter.voltage_nplc = 1 # Integration constant to Medium self.source = Keithley2400("GPIB::1") self.source.apply_current() self.source.source_current_range = self.max_current * 1e-3 # A self.source.compliance_voltage = self.voltage_range self.source.enable_source() sleep(2)
##This is a generic code to measure resistance using DC Keithley 2400 and nvm, it does not record any other values ## It will sweep a current from the set min current to the set max current with the given steps """ ### Import ### #Required packages import numpy as np import time #Drivers from pymeasure.instruments.keithley import Keithley2400 from pymeasure.instruments.keithley import Keithley2000 nvm = Keithley2000("GPIB::15") source = Keithley2400("GPIB::21") ### Setup nvm ### ### Setup 2400 ### currentmax = 1e-6 currentmin = 0 currentstep = 1e-8 currentrange = int((currentmax-currentmin)/currentstep+1) source.apply_current() print(nvm.voltage) #Test the nvm connection nvm.beep_state = 'disabled'
timeinterval = args.interval else: timeinterval = 1 # this corresponds to 1 measurement / second df = pd.DataFrame( dict(time=[], temp=[], tempres=[], rho=[], resistivity=[], read_pressure=[], read_pvoltage=[], pressure_sample=[])) LS = LS350(None, 'GPIB::9::INSTR') KTmult = Keithley2000('GPIB::14::INSTR') KTmult.measure_voltage(max_voltage=10, ac=False) fig = plt.figure() grid = gridspec.GridSpec(2, 2, figure=fig) ax1 = fig.add_subplot(grid[0, 0]) ax1.set_xlabel("T (K)") ax1.set_ylabel(r"$\rho$ ($\Omega$ m)") ax1.ticklabel_format(axis='y', style='sci', scilimits=(0, 2)) line0, = ax1.plot(df['temp'], df['rho'], 'k.-') ax2 = fig.add_subplot(grid[1, 0]) ax2.set_xlabel("time") # ax2.set_ylabel(r"$\rho$ ($\Omega$ m)") ax2.set_ylabel(r"R ($\Omega$)")