我正在使用 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 通信)和/或类似“转到本地”的方法“我可以将命令发送到整个网络或特定仪器,因此一旦根据需要配置了相关仪器,前面板就会处于活动状态?
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 http://pyvisa.readthedocs.io/en/stable/_modules/pyvisa/constants.html)
似乎我应该能够在这里指定一个变量名而不是常量,所以显然还有其他东西我不理解,但至少我现在有一个可行的解决方案。
有一个调用可用于控制设备的远程/本地状态。
GPIBInstrument.control_ren(mode)
控制 GPIB 远程启用 (REN) 接口线路的状态,以及设备的远程/本地状态(可选)。
对应于VISA库的viGpibControlREN函数。
(Source http://pyvisa.readthedocs.io/en/stable/api/resources.html?highlight=gpib_control_ren#pyvisa.resources.GPIBInstrument.control_ren)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)