【问题标题】:USB communication with Python (Newport Instrument)与 Python 的 USB 通信(Newport Instrument)
【发布时间】:2019-02-24 06:47:38
【问题描述】:

我目前正在尝试使用 python 与激光控制器 TLB 6700 (New Focus - Newport) 进行 USB 通信。

https://www.newport.com/f/velocity-wide-&-fine-tunable-lasers

这是我的第一个 python 任务,我遇到了一些麻烦。所以,按步骤:

1) 该设备有自己的驱动程序和一个商业软件来控制它。但是,我想开发自己的代码来执行几个自动化过程。

2) newport 驱动程序与 NI 不兼容。这意味着如果我使用 Newport 驱动程序,我将无法使用 PyVisa 识别设备。

3)出于同样的原因,我想我也不能使用 PyUSB。即使我对此也不是很确定。

4) 我发现的一个解决方案是使用 NI-Interactive 控件为设备安装辅助 NI 驱动程序。按照这个过程,我可以用 PyUSB 识别设备。

5) 但是,我不明白如何激活设备和发送命令。我猜正确的程序是这样的:

5.1:调用库。 Newport 提供了不同的库和 dllwrapers。我假设正确的过程是使用 Ctypes 调用主设备 dll。这将导致可能的指令调用。

5.2:像我使用 NI 驱动程序和 PyUSB 一样识别设备。

5.3:打开设备并通过 PyUSB 代码发送命令。

所以,这里是我的问题:

  • PyVISA 似乎比 PyUSB 更容易使用。你们中的任何人都知道使用 PyVISA 执行相同操作的程序吗?

  • 你们中有人用 Newport 设备,甚至用相同的 TLB 6700 控制器做过类似的过程吗?

提前谢谢你,

干杯,

【问题讨论】:

    标签: dll usb ctypes pyusb pyvisa


    【解决方案1】:

    可能有点晚了,但以防万一,我开发了一个 python 代码来控制 TLB 67xx。您可以在我的github 中找到它。

    基本上,我通过 (UsbDllWrap) python net (import clr) 调用 dll 并使用它来设置波长、开始扫描等...我确实有几个可以关闭的装饰器 (@InOut.例如输出)。如果您不使用 Anaconda for python,您可能需要调整 dll 的路径。这是我发现控制 NewFocus 激光器的唯一不错的方法,因为无法通过 PyVisa 控制它们。 显然,这样做只能在 Windows 上进行。

    我仍在研究可能适用于 Linux 的跨平台解决方案

    【讨论】:

      猜你喜欢
      • 2011-06-17
      • 2012-12-19
      • 1970-01-01
      • 2020-01-27
      • 2013-04-07
      • 2012-03-11
      • 2016-06-19
      • 2018-02-17
      相关资源
      最近更新 更多