最新版はこちら。 いろいろ危ない世の中になってきたので、static に生成した html での公開に切り替えました。ご了承ください。
| 先月 | 2024年03月 | 来月 | ||||
|---|---|---|---|---|---|---|
| 日 | 月 | 火 | 水 | 木 | 金 | 土 |
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 | ||||||
USB0::0x05E6::0x6500::04531795::INSTRとなっていたので、こんな感じのテストスクリプトを書く
import pyvisa
from time import sleep
import sys
rm = pyvisa.ResourceManager()
try:
instR = rm.open_resource("USB0::0x05E6::0x6500::04531795::INSTR") #DMM6500
except:
print("抵抗測定器(Keithley DMM6500)が認識できません")
while True:
key = input("Enterキーを押したら終了します")
if not key:
break
sys.exit()
instR.write("*IDN?")
line = instR.read()
print(line)
vscode から実行すると
KEITHLEY INSTRUMENTS,MODEL DMM6500,04531795,1.7.7bとあっさり返る。すげー簡単。
*RST :SENS:FUNC "FRES" :SENS:FRES:RANG: AUTO ON :SENS:FRES:OCOM ON :SENS:FRES:AZER ON :SENS:FRES:NPLC 1 :MEAS?という感じでとれた。あとは実抵抗でテストして、もとのソースコードに組み込めばひとまずは OK。
import pyvisa
from time import sleep
import sys
def setDMM2000(rm):
try:
instR = rm.open_resource("GPIB0::5::INSTR") #Keithley2000
except:
print("抵抗測定器(Keithley 2000)が認識できません")
while True:
key = input("Enterキーを押したら終了します")
if not key:
break
sys.exit()
line = instR.query("*IDN?")
print(line.strip())
instR.write("*CLS")
instR.write("*RST")
instR.write(":SENS:FUNC \"FRES\"")
instR.write(":SENS:FRES:RANG:AUTO ON")
instR.write(":SENS:FRES:NPLC 3")
print("Keythley 2000 is ready.")
return instR
rm = pyvisa.ResourceManager()
instR = setDMM2000(rm)
line = instR.query_ascii_values("READ?", delay=2)
print(line)
という感じで。実行すると
KEITHLEY INSTRUMENTS INC.,MODEL 2000,0639000,A06 /A02 Keythley 2000 ready. [51.2786467]と返る。1 MΩの抵抗もちゃんと返る。よしよし。
class InstR:
def __init__(self, rm, visaId):
try:
self.instR = rm.open_resource(visaId) #Keithley2000
except:
print("抵抗測定器(Keithley DMM2000)が認識できません")
while True:
key = input("Press Enter to exit.")
if not key:
break
sys.exit()
line = self.instR.query("*IDN?")
print(line.strip())
self.instR.write("*CLS")
self.instR.write("*RST")
self.instR.write(":SENS:FUNC \"FRES\"")
self.instR.write(":SENS:FRES:RANG:AUTO ON")
self.instR.write(":SENS:FRES:NPLC 3")
print("Keythley 2000 is ready for 4W Ohm measurment.")
def getR(self):
return float(self.instR.query_ascii_values("READ?", delay=2)[0])
同時にグラフを書かせるなら、matplotlib.animation の FuncAnimation を使うといけるっぽい。
その場合は update 関数に計測のいろいろを書くんだろうけど、どうも保守性が悪化しそうなので、
これ以上はひとまず pending にすることにした。ChatGPT さんにいろいろ聞いてみた経緯は
こちら
にて。停止はどうもうまくいかないみたいだけど。
[TimeMachine]
comment = TimeMachine Folder
path = /opt/TimeMachine
writable = Yes
browsable = Yes
guest ok = no
fruit:time machine = Yes
fruit:time machine max size = 1T
というエントリを追加