什么会导致GPIB无响应

2024-09-29 00:12:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个GPIB设备,我正在使用国家仪器USB到GPIB进行通信。USB到GPIB工作得很好。在

我想知道什么会导致GPIB设备无响应?如果我关闭设备并重新打开它,它会响应,但当我运行我的程序时,它会首先响应。然后它切断了,我甚至无法与GPIB设备通信,它只是超时了。在

我把缓冲器装满了吗?在

来自另一个提问者的一些细节

我用PyVisa控制一个国家仪器GPIB卡(不是USB)。GPIB总线上的仪器是Newport ESP300运动控制器。在一个数小时的会话期间(所有的同时发送命令和从ESP300读取),ESP300有时会停止监听并变得无响应。所有读取都超时,甚至*idn?都不产生响应。在

我能做些什么来消除这种状况吗?e、 开IFC路线?在


Tags: 命令程序控制器国家细节仪器usb总线
3条回答

应该有一个明确的命令(类似"*CLS?",但不要引用我的话)。我总是在第一次连接设备时运行它。然后确保你有一个良好的超时时间。我为我的设备找到了大约1秒的工作。不到1秒的时间让我错过了写作后的阅读。大多数情况下,超时是因为您错过了超时,或者您正在读取一个没有返回的命令。确保在写入之间还检查了错误队列中的错误,以确保写入操作在通过时确实正确。在

由于您使用的是国家仪器硬件,您可以在后台运行NI Trace来检查程序发出的所有命令。在跟踪中,请检查从导致硬件挂起的程序发出的最后一个命令及其参数。在

You can download NI IO Trace here

如果设备不再监听,甚至命令*CLS也无法工作(这里可能就是这种情况)。强制重置设备接口的唯一方法是发送低级的gpib总线消息“Selected device Clear”(它由标准gpib库的函数“ibclr”实现,例如https://www.l-com.com/multimedia/manuals/M_USB-488.PDF第3-7页,但我不知道Python中的等价物是什么)。这个命令是为了在GPIB错误发生时使用,我总是这样做,从来没有遇到过问题。为了使其正常工作,您还应该监视所有gpib调用的返回值-通常人们不会这样做,所以在程序挂起之前他们不会意识到错误。在

相关问题 更多 >