我正在使用pyVISA控制GPIB网络中的一些仪器。当我创建资源管理器时,我GPIB网络中的所有仪器都进入了远程模式,因此前面板显示被锁定且不更新。当我关闭资源管理器时,这些仪器仍然处于远程模式。
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()
在这个特定的情况下,我只想控制网络中的一个仪器,但需要其他仪器处于开启状态,前面板显示屏应该是活动的。
是否有办法通过编程方式将“额外”的仪器从资源管理器中排除(如果可能的话,不希望手动断开GPIB电缆或关闭GPIB通信),或发送类似于“转到本地”命令,对整个网络或特定仪器进行配置,以使前面板在需要时处于活动状态?
更新:
经过一些实验和进一步阅读,我发现以下操作能够让我的仪器回到本地模式:
#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)。看起来我应该能够在此处指定变量名,而不是常量,所以显然我还有其他不理解的地方,但至少现在我有一个可行的解决方案。