0

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

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

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

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

4

1 回答 1

0

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

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

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

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

例子:

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
于 2021-01-19T12:15:04.447 回答