我正试图用Python与一台非常老的仪器(CCD摄像机)进行通信。1999年出版的仪器制造商的GPIB编程手册只提供了一个基本的命令清单。文中还介绍了GPIB通信的一些标准程序。
我以前已经成功地编写了一些Python程序(用PyVisa)来控制和获取通过以太网或USB连接到计算机的仪器上的数据。然而,GPIB对我来说是新的,在ATN、SRQ、健谈者或听者方面,它似乎与他们完全不同。
我从GPIBInterface API文档中找到了PyVisa和GPIBInstrument类,但是找不到有关talker或listener设置的任何信息。
这是我的问题
a.我下面对数据采集过程的假设正确吗?
b.来自控制器的控制消息与GPIBInstrument类中的直接“写”函数有什么区别?
下面的代码仍然工作,虽然它省略了设置ATN,一个说话者,或一个侦听器。为什么会这样呢?
import pyvisa
RM = pyvisa.ResourceMananger()
INSTRUMENT = RM.open_resource('instrument address')
print(INSTRUMENT.query('*IDN?'))c.是他们通过PyVisa?进行GPIB编程的示例或教程吗?
我找不到合适的。
任何评论都是有帮助的。提前谢谢。
发布于 2021-04-14 05:00:05
a.我下面对数据采集过程的假设正确吗?
我已经写了20多年的基于签证的仪器控制代码,我不知道答案,而且几乎没有必要让你知道它。
只有当您自己实际实现VISA API,或者在您设计的仪器上调试GPIB接口时,您才需要担心ATN或SRQ信号的操作,或者需要分配对话者和侦听器。
下面的代码仍然工作,虽然它省略了设置ATN,一个说话者,或一个侦听器。为什么会这样呢?
简单地说,因为Visa viWrite() (或viQuery())函数(由pyVisa write()或query()方法调用)为您处理所有这些问题。
类似地,viRead()函数由pyVisa read()方法调用,它将处理从从设备读取消息所需的所有低级信号操作。
有一天,如果你运气不好,你可能会发现你需要执行一些低级的功能,比如GTL (转到本地,告诉仪器返回到前面板控制),GET (组执行触发器,同时触发多个仪器),或者响应SRQ。但是即使是这些VISA库也提供了一个抽象的接口,这样您就不必直接操作各个总线线路了。
他们是否有通过PyVisa进行GPIB编程的示例或教程?
pyVisa文档提供了几个示例,例如在标题下
和
https://stackoverflow.com/questions/59151499
复制相似问题