太陽電池測定制御システムpythonコード
8933 ワード
'''
keithley
visa VXIplug&play 。
python VISA, pyviva
'''
###IV
from visa import *
from string import *
from math import *
class CurrentMiter(Instrument):
CurrentValue=[]
datapoints=1
Atrr=""
def __init__(self,DelayTime=0.2,DPs=111):
self=instrument("GPIB::23")
self.timeout=30
datapoints=DPs
self.delay=DelayTime
self.write("*Rst")
self.write(":SYST:PRES")
self.write(":FORM:DATA ASCII")
self.write(":TRIgger:delay 0")
self.write(":trigger:source external")
self.write(":INITiate:CONTinuous On")
self.write(":trigger:count 1")
self.write(":Data:clear")
self.write(":data:points %d" % datapoints)
self.write(":data:feed:control next")
self.write(":data:feed sense")
self.write(":FUNC 'CURRent:DC'")
self.write(":CURRent:DC:RANGe:Auto 1")
self.write(":CURRent:DC:DIGits 7")
self.write(":CURRent:DC:AVERage:STATe off")
def newAsk(self,cmd):
return self.ask_for_values(cmd)
class SourceGenerator(Instrument):
VRangeSelect=""
VStart=1
VStop=0
VStep=1
TimeStep=1
def __init__(self,DelayTime=0.2,V0=1.0,Vt=-0.1,Vs=0.01,Ts=0.1,Vr=4): 146
self=instrument("GPIB::1")
self.delay=DelayTime
self.VRangeSelect=Vr
self.VStart=V0
self.VStop=Vt
self.VStep=Vs
self.TimeStep=Ts
self.write("C")
self.write("RP1")
self.write("PM2")
self.write("V%s" % str(self.VRangeSelect))
cmd="SP"+str(self.TimeStep)+"SN"+str(self.VStart)+","+str(self.VStop)+","+str(self.VStep)+ " ST0"
self.write(cmd)
Points=abs((self.VStop - self.VStart)/ (self.VStep))+1
K2000=CurrentMiter(0.2,Points)
self.write("E")
self.write("*CLS ISE1 *SRE8 S0")
self.write("*TRG")
self.wait_for_srq()
##
from IVKeithley import *
from IVSource import *
from visa import *
if __name__ ="__main__":
Keithley=CurrentMiter(0.1,10)
Source=SourceGenerator(0.2)
Source.StartTest()
Source.write("*TRG")
#Source.write("H")
転載先:https://www.cnblogs.com/milliard/p/7903853.html