USB-связь с Python (Newport Instrument) - PullRequest
       35

USB-связь с Python (Newport Instrument)

0 голосов
/ 20 сентября 2018

В настоящее время я пытаюсь установить USB-связь с лазерным контроллером TLB 6700 (New Focus - Newport) с помощью python.

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

Это мое первое задание на Python, и у меня возникло несколько проблем.Итак, пошагово:

1) Это устройство имеет собственные драйверы и коммерческое программное обеспечение для управления им.Тем не менее, я хотел бы разработать свой собственный код для выполнения нескольких процедур автоматизации.

2) Драйверы newport несовместимы с NI.Это означает, что я не могу использовать PyVisa для распознавания устройства, если я использую драйверы Newport.

3) Я думаю, что я не могу использовать PyUSB тоже, по той же причине.Даже я не совсем уверен в этом.

4) Решение, которое я нашел, состоит в том, чтобы использовать элемент управления NI-Interactive для установки вторичного драйвера NI для устройства.После этой процедуры я могу распознать устройство с помощью PyUSB.

5) Однако я не понимаю, как активировать устройство и отправлять команды.Я думаю, что правильная процедура выглядит примерно так:

5.1: вызов библиотеки.Ньюпорт предоставляет различные библиотеки и библиотеки dllwrapers.Я предполагаю, что правильной процедурой является использование Ctypes для вызова основного устройства DLL.Это приведет к возможному вызову инструкции.

5.2: Распознать устройство как я сделал с драйвером NI и через PyUSB.

5.3: Откройте устройство и отправьте команду через код PyUSB.

Итак, вот мои вопросы:

  • PyVISA кажется намного проще в использовании, чем PyUSB.Кто-нибудь из вас знает процедуру, чтобы сделать то же самое, но с PyVISA?

  • Кто-нибудь из вас делал аналогичную процедуру с устройствами Newport или даже с тем же контроллером TLB 6700?

Заранее спасибо,

Ура,

1 Ответ

0 голосов
/ 06 декабря 2018

Может быть, немного поздно, но на всякий случай я разработал код на python для управления TLB 67xx.Вы можете найти его в моем github .

Обычно я вызываю библиотеку Python через dll (UsbDllWrap) (import clr) и использую ее для установки длины волны, запуска сканирования и т. Д. У меня есть несколько декораторов, которые вы можете отклонить (@ InOut.output например).Возможно, вам придется скорректировать путь вашей DLL, если вы не используете Anaconda для Python.Это единственный достойный способ управления лазером NewFocus, так как через PyVisa управлять им будет невозможно.Очевидно, что это возможно только на Windows.

Я все еще работаю над кроссплатформенным решением, подходящим для Linux

...