【问题标题】:Keep getting VisaIOErrors after crash, unless device and ipython are rebooted崩溃后继续收到 VisaIOErrors,除非重新启动设备和 ipython
【发布时间】:2021-01-15 10:31:31
【问题描述】:

我们正在使用 pyVisa 库控制 Keithley DMM6500。在我们的设置中,我们保持 iPython 内核运行(通过 Spyder)。

我们遇到的问题如下:每当与 DMM 交互的函数遇到未处理的异常(如 KeyboardInterrupt),对 DMM 的任何后续调用都会导致错误 VI_ERROR_SYSTEM_ERROR (-1073807360): Unknown system error (miscellaneous error).

为了解决这个问题,我们尝试调用device.clear()device.close() / device.open(),但这似乎不起作用。即使重新启动设备也不起作用。似乎唯一能解决问题的方法是完全重启我们的 iPython 内核。

有没有办法以编程方式恢复与设备的通信,这样我们就可以避免重新启动 ipython 内核?

【问题讨论】:

    标签: ipython visa pyvisa


    【解决方案1】:

    您的某些问题不清楚,因此我的回答可能无济于事,但是,听起来终端正在锁定连接,而您正在失去参考。

    我过去这样做的两种方式:

    1. 与设备通话时打开连接,完成后关闭连接。如果您的连接不稳定,但打开和关闭连接需要更长的时间,这很有用。

    2)在您的程序中,您应该有一个 try/except 来处理与仪器的连接,并且当程序出错时您需要关闭连接以使其不会被锁定。

    示例:

    try:
        run_program() 
    except:
        close_connection_to_all devices() # build a function to clear connection to all devices
        dump_any_unsaved_data() # maybe you want to dump some of the variable to see what the data was when it errored for debug
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-10
      • 1970-01-01
      相关资源
      最近更新 更多