gpt4 book ai didi

python - PyVISA SerialInstrument 失败后需要硬重置才能连接

转载 作者:太空宇宙 更新时间:2023-11-04 00:34:58 26 4
gpt4 key购买 nike

我正在使用是德科技波形发生器和 pyVisa,我注意到如果我的代码没有成功完成并结束,我需要对设备执行硬重置以再次尝试我的代码。

我曾尝试在 __del__ 方法下重置设备,以便设备处于已知状态,但似乎不起作用。我也尝试过使用 pyvisa.resources.SerialInstrument.clear()。有其他人遇到过这样的问题吗?您是如何解决的?

主机运行windows 7,PyVISA版本为1.8。在我取消 python 脚本导致程序失败后,我将尝试发送一个简单的 *IDN?向设备发出 SCPI 命令后出现错误:

pyvisa.errors.VisaIOError:VI_ERROR_TMO (-1073807339):操作完成前超时。

如果我尝试在设备上调用 pyvisa.resources.SerialInstrument.clear() 我会收到错误消息pyvisa.errors.VisaIOError: VI_ERROR_INV_SETUP (-1073807302): 无法开始操作,因为设置无效(通常是由于属性设置为不一致的状态)

最佳答案

问题是该设备仍在被另一个实例连接。原因是因为运行 visa.ResourceManager().list_resources() 两次列出设备,一次作为 USB 设备,另一次作为 ASRL。

解决方案是调用 visa.ResourceManager().list_resources(query='USB?*') 以确保仪器仅在我的结果中列出一次。 (或者,我可以在设备设置中禁用 USB 或 GPIB。)然后在打开资源后立即调用 device.clear() 以确保缓冲区为空,因为在错误中可能有那里有未读数据。这解决了问题。

关于python - PyVISA SerialInstrument 失败后需要硬重置才能连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44438534/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com