我用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通信)和/或类似“转到本地”命令的方式发送到整个网络或特定仪器,那么,一旦有问题的仪器根据需要进行了配置,前面板就带电了?在
更新:
经过一些实验和进一步的阅读,我发现以下情况使我的仪器回到本地模式:
^{pr2}$值0和6是在pyVISA(http://pyvisa.readthedocs.io/en/stable/_modules/pyvisa/constants.html)中设置的常量 似乎我应该可以在这里指定一个变量名而不是常量,所以显然还有一些我不理解的地方,但至少我现在有了一个有效的解决方案。在
大多数仪器都有远程和本地命令。Visa也有自己的set local命令,类似于c语言中的
viGpibControlREN( handle, VI_GPIB_REN_ADDRESS_GTL )
。你必须阅读设备手册才能确定,但是它们的单独Visa命令通常类似于系统:LOC““有一个呼叫可以控制设备的远程/本地状态。在
(Source)
相关问题 更多 >
编程相关推荐