python - 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(MyInstrument.query("*IDN?"))

#close resource manager
rm.close()

在这种特殊情况下,我只想控制网络中的一台仪器,但需要打开其他仪器的电源,并使前面板显示屏实时显示。

有没有办法以编程方式从资源管理器中排除“额外”仪器(如果我可以帮助,不想断开 GPIB 电缆或手动关闭 GPIB 通信)和/或类似“go to local”命令我可以发送到整个网络或特定仪器,所以一旦相关仪器已根据需要进行配置,前面板就会激活?

更新:

经过一些实验和进一步阅读,我发现以下命令使我的仪器返回到本地模式:

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

最佳答案

有一个调用可以控制设备的远程/本地状态。

GPIBInstrument.control_ren(mode)

Controls the state of the GPIB Remote Enable (REN) interface line, and optionally the remote/local state of the device.

Corresponds to viGpibControlREN function of the VISA library.

( Source )

关于python - pyVISA:以编程方式将仪器返回到本地模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43592317/

相关文章:

python - Plotly:如何调整 slider 和更新菜单的位置以为 x 轴刻度线腾出空间?

python - 如何用Python中的另一个字符串替换函数中的字符串?

Python 脚本调用不同的 python 脚本,然后从辅助脚本将字符串/结果带到主脚本

python - pandas - 与 matplotlib 进行绘图集成

python - 如何使用 python 正则表达式查找文件中的所有字符字符串

Python:使用 lambda 从列表中使用列表理解创建字典

visa - 使用pyvisa从示波器获取数据

java - 从数据库模式生成基于 REST 的服务

json - 用于在 API 上发布的 Python 3 Gzip json

python - 将 Python 2 代码移植到 Python 3 时处理 ctypes 和 ASCII 字符串