私はpyVISAを使ってGPIBネットワークのいくつかの機器を制御しています。リソースマネージャを作成すると、GPIBネットワーク内のすべての計測器がリモートモードになり、フロントパネルの表示がロックされ、更新されません。リソースマネージャを閉じると、計測器はリモートモードのままです。pyVISA:機器をローカルモードに戻す
import visa
rm = visa.ResourceManager()
#Connect to a specific instrument
MyInstrument = rm.open_resource('GPIB0::10::INSTR')
#Do stuff
print(MyInstrument.query("*IDN?"))
#close resource manager
rm.close()
この特定のケースでは、ネットワーク内の1つの計測器を制御したいだけですが、電源を入れてフロントパネルの表示を有効にする必要があります。
"余分な"計測器をリソースマネージャからプログラムで除外する方法はありますか(GPIBケーブルを切断したり、GPIB通信を手動でオフにしたくない場合など)、または「ローカルに移動」コマンドネットワーク全体または特定の計測器に送ることができるので、必要に応じて計測器を設定したら、フロントパネルが稼働しますか?
UPDATE:
いくつかの実験をさらに読書の後、私は、次のローカルモードに自分の楽器を返すが見つかりました:
#Return single instrument to local with
#GTL command (VI_GPIB_REN_ADDRESS_GTL = 6)
MyInstrument.control_ren(6)
#Return all instruments in network to local by
#deasserting remote enable line (VI_GPIB_REN_DEASSERT = 0)
MyInstrument.control_ren(0)
値0と6はpyVISA(http://pyvisa.readthedocs.io/en/stable/_modules/pyvisa/constants.html)に設定された定数である はそう定数の代わりにここに変数名を指定できるはずですので、明らかに私が理解していない何かがありますが、少なくとも今私は実用的な解決策を持っています。
私を正しい軌道に乗せていただきありがとうございます。