測定には Agilent DMM を使用しています。Python 2.7 と PySerial モジュールを使用して通信します。アイデア: FOR ループを使用して、DMM から読み取り、データを取得します。毎回異なるポイントで、ある時点まで正常に機能しています。
例: ループを 20k 回測定するように設定すると、1k 回後に突然停止し、次の試行では 5k 回後に停止する可能性があります....停止 - DMM がデータの送信を停止し、Python が一種の待機状態のままであることを意味します。 . スクリプトが動かなくなり、終了する必要があります。エラーはありません。理由はわかりません。測定の間にタイムアウト (スリープ) を追加しようとしましたが、問題は解決しません。私のスクリプトの主なコマンドは次のとおりです。
# configure the serial connections
ser = serial.Serial(
port='com3',
baudrate=19200,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS
}
ser.write("CONF:CURRent:DC" + '\r\n')
time.sleep(1)
ser.write("SENS:CURR:DC:RANGe:UPP 0.05" + '\r\n')
time.sleep(1.5)
for m in range (0, 2000):
try:
ser.write('READ?' + '\r\n')
out += ser.read(18)
print "out = ",out
except:
print "error!"
ループが実行されています。最後まで「生き残る」こともありますが、ほとんどの場合は停止するだけです。アドバイスをお願いします。「例外」の部分には決して入らないことに注意してください。「試してみる」を追加しても役に立たなかった...
ありがとうございました!
~ドルフィン~