Программирование блока питания TDK-LAMBDA с помощью PyVISA - PullRequest
0 голосов
/ 31 мая 2018

У меня есть задача использовать источник питания TDK-LAMBDA Z + в моем проекте мастера для подачи постоянного тока и сохранения показаний напряжения в файле.Тем не менее, в настоящее время я не могу связаться с источником питания.В настоящее время я пытаюсь подключиться к источнику питания с помощью PyVISA с установленными внутренними драйверами NI-VISA.

При попытке запроса источника питания истекает время ожидания операции до ее завершения, ниже приведен мойкод и некоторая дополнительная информация.В настоящее время я использую Python 3 64 бит и пытаюсь установить связь с блоком питания через USB-соединение.

import visa
rm = visa.ResourceManager('@ni')
print(rm.list_resources()) # Correctly detects the psu ('ASRL3::INSTR',)

inst = rm.open_resource('ASRL3::INSTR', baud_rate=19200)
inst.write_termination = '\r'
inst.read_termination = '\r'

print(inst.query("*IDN?"))

Это дает мне следующую ошибку:

Warning (from warnings module):
File "C:\Users\user\AppData\Local\Programs\Python\Python37\lib\site-packages\pyvisa\ctwrapper\functions.py", line 1227
ret = library.viOpenDefaultRM(byref(session))
VisaIOWarning: VI_WARN_CONFIG_NLOADED (1073676407): The specified configuration either does not exist or could not be loaded. VISA-specified defaults will be used.

Traceback (most recent call last):
File "C:\Users\User\Desktop\Drivers\code.py", line 13, in <module>
print(inst.query("*IDN?"))
File "C:\Users\User\AppData\Local\Programs\Python\Python37\lib\site-packages\pyvisa\resources\messagebased.py", line 564, in query
return self.read()
File "C:\Users\User\AppData\Local\Programs\Python\Python37\lib\site-packages\pyvisa\resources\messagebased.py", line 413, in read
message = self._read_raw().decode(enco)
File "C:\Users\User\AppData\Local\Programs\Python\Python37\lib\site-packages\pyvisa\resources\messagebased.py", line 386, in _read_raw
chunk, status = self.visalib.read(self.session, size)
File "C:\Users\User\AppData\Local\Programs\Python\Python37\lib\site-packages\pyvisa\ctwrapper\functions.py", line 1584, in read
ret = library.viRead(session, buffer, count, byref(return_count))
File "C:\Users\User\AppData\Local\Programs\Python\Python37\lib\site-packages\pyvisa\ctwrapper\highlevel.py", line 188, in _return_handler
raise errors.VisaIOError(ret_value)
pyvisa.errors.VisaIOError: VI_ERROR_TMO (-1073807339): Timeout expired before operation completed.

Запуск >>> Информация о визе python -m приводит к следующему

C:\Users\User\AppData\Local\Programs\Python\Python37\lib\site-packages\pyvisa\ctwrapper\functions.py:1227: VisaIOWarning: VI_WARN_CONFIG_NLOADED (1073676407): The specified configuration either does not exist or could not be loaded. VISA-specified defaults will be used.
ret = library.viOpenDefaultRM(byref(session))
Machine Details:
Platform ID:    Windows-10-10.0.16299-SP0
Processor:      Intel64 Family 6 Model 142 Stepping 9, GenuineIntel

Python:
Implementation: CPython
Executable:     C:\Users\User\AppData\Local\Programs\Python\Python37\python.exe
Version:        3.7.0b4
Compiler:       MSC v.1913 64 bit (AMD64)
Bits:           64bit
Build:          May  2 2018 19:02:22 (#v3.7.0b4:eb96c37699)
Unicode:        UCS4

PyVISA Version: 1.10.0.dev0

Backends:
ni:
  Version: 1.10.0.dev0 (bundled with PyVISA)
  #1: C:\WINDOWS\system32\visa64.dll:
     found by: auto
     bitness: 64
     Vendor: National Instruments
     Impl. Version: 5243905
     Spec. Version: 5243136
  #2: C:\WINDOWS\system32\visa32.dll:
     found by: auto
     bitness: 64
     Vendor: National Instruments
     Impl. Version: 5243905
     Spec. Version: 5243136

Я использую как 64-битную Python, так и 64-битную VISA.

print(rm)
Resource Manager of Visa Library at C:\WINDOWS\system32\visa64.dll

import sys
print(sys.version)
3.7.0b4 (v3.7.0b4:eb96c37699, May  2 2018, 19:02:22) [MSC v.1913 64 bit (AMD64)]

Любая помощь в этом отношении будет принята с благодарностью.Я боролся с этим уже несколько дней и не смог заставить его работать.

Редактировать:

Вынудил скрипт использовать 64-битную версиюVISA, до сих пор не работает.

rm = visa.ResourceManager('C:\\WINDOWS\\system32\\visa64.dll')

1 Ответ

0 голосов
/ 04 июня 2018

Кажется, я решил проблему, в блок питания включен драйвер USB-последовательный порт, который облегчает связь.Поскольку блок питания подключен через USB, но работает как последовательное устройство.Тем не менее, входящий в комплект драйвер кажется неадекватным, и после установки других USB-драйверов для последовательного порта я могу теперь связаться с блоком питания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...