首页 > 解决方案 > 与 Python 的 USB 通信(Newport Instrument)

问题描述

我目前正在尝试使用 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代码发送命令。

所以,这是我的问题:

先感谢您,

干杯,

标签: dllusbctypespyusbpyvisa

解决方案


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

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

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


推荐阅读