Python pyVISA:以编程方式将仪器返回本地模式

Python pyVISA:以编程方式将仪器返回本地模式,python,python-3.x,visa,gpib,pyvisa,Python,Python 3.x,Visa,Gpib,Pyvisa,我正在使用pyVISA控制GPIB网络中的一些仪器。当我创建资源管理器时,我的GPIB网络中的所有仪器都进入远程模式,因此前面板显示被锁定且不更新。当我关闭资源管理器时,仪器仍处于远程模式 import visa rm = visa.ResourceManager() #Connect to a specific instrument MyInstrument = rm.open_resource('GPIB0::10::INSTR') #Do stuff print(MyInstrume

我正在使用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()中设置的常量
似乎我应该能够在这里指定一个变量名,而不是常量,所以显然还有一些我不理解的地方,但至少我现在有了一个可行的解决方案。

大多数仪器都有远程和本地命令。Visa还有自己的set local命令,类似于c中的
vigpibcontrolleren(handle,VI_GPIB_REN_ADDRESS_GTL)
。您必须阅读设备手册才能确定,但其单独的visa命令通常类似于“SYST:LOC”

有一个呼叫可用于控制设备的远程/本地状态

GPIBInstrument.control_ren(mode)
控制GPIB远程启用(REN)接口线的状态,以及设备的远程/本地状态(可选)

GPIBInstrument.control_ren(mode)
对应于VISA库的viGpibControlREN功能

()