首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与Python (PyVisa)的GPIB通信

与Python (PyVisa)的GPIB通信
EN

Stack Overflow用户
提问于 2019-12-03 06:46:48
回答 1查看 2.4K关注 0票数 3

我正试图用Python与一台非常老的仪器(CCD摄像机)进行通信。1999年出版的仪器制造商的GPIB编程手册只提供了一个基本的命令清单。文中还介绍了GPIB通信的一些标准程序。

我以前已经成功地编写了一些Python程序(用PyVisa)来控制和获取通过以太网或USB连接到计算机的仪器上的数据。然而,GPIB对我来说是新的,在ATN、SRQ、健谈者或听者方面,它似乎与他们完全不同。

我从GPIBInterface API文档中找到了PyVisa和GPIBInstrument类,但是找不到有关talker或listener设置的任何信息。

这是我的问题

a.我下面对数据采集过程的假设正确吗?

  1. 将控制器(PC)设置为谈话者,将仪器设置为侦听器。
  2. 控制器断言ATN。
  3. 控制器对仪器进行数据采集。
  4. 等仪器的SRQ。
  5. 将仪器设置为谈话者,将控制器设置为侦听器。
  6. 控制器取消ATN的声明。
  7. 仪器向控制器发送数据消息。
  8. 一次收购完成。

b.来自控制器的控制消息与GPIBInstrument类中的直接“写”函数有什么区别?

下面的代码仍然工作,虽然它省略了设置ATN,一个说话者,或一个侦听器。为什么会这样呢?

代码语言:javascript
复制
import pyvisa

RM = pyvisa.ResourceMananger()
INSTRUMENT = RM.open_resource('instrument address')
print(INSTRUMENT.query('*IDN?'))

c.是他们通过PyVisa?进行GPIB编程的示例或教程吗?

我找不到合适的。

任何评论都是有帮助的。提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2021-04-14 05:00:05

a.我下面对数据采集过程的假设正确吗?

  1. 将控制器(PC)设置为谈话者,将仪器设置为侦听器。
  2. 控制器断言ATN。
  3. 控制器对仪器进行数据采集。
  4. 等仪器的SRQ。
  5. 将仪器设置为谈话者,将控制器设置为侦听器。
  6. 控制器取消ATN的声明。
  7. 仪器向控制器发送数据消息。
  8. 一次收购完成。

我已经写了20多年的基于签证的仪器控制代码,我不知道答案,而且几乎没有必要让你知道它。

只有当您自己实际实现VISA API,或者在您设计的仪器上调试GPIB接口时,您才需要担心ATN或SRQ信号的操作,或者需要分配对话者和侦听器。

下面的代码仍然工作,虽然它省略了设置ATN,一个说话者,或一个侦听器。为什么会这样呢?

简单地说,因为Visa viWrite() (或viQuery())函数(由pyVisa write()query()方法调用)为您处理所有这些问题。

类似地,viRead()函数由pyVisa read()方法调用,它将处理从从设备读取消息所需的所有低级信号操作。

有一天,如果你运气不好,你可能会发现你需要执行一些低级的功能,比如GTL (转到本地,告诉仪器返回到前面板控制),GET (组执行触发器,同时触发多个仪器),或者响应SRQ。但是即使是这些VISA库也提供了一个抽象的接口,这样您就不必直接操作各个总线线路了。

他们是否有通过PyVisa进行GPIB编程的示例或教程?

pyVisa文档提供了几个示例,例如在标题下

与你的仪器沟通

一个更复杂的例子

读写价值

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59151499

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档