我喜欢控制VISA设备(PAX1000偏振仪)。
我开始在Windows下使用ni-visa后端为pyvisa编程,并且通信工作正常。此外,如果我使用winusb驱动程序的pyvisa-py后端(用zadig更改驱动程序),一切工作正常。
然后我将偏振器移动到Raspberry Pi,也使用了pyvisa库,但使用了pyvisa后端(ni-visa不适用于ARM)。大多数命令都按预期工作,我得到了预期的答案。但也有一些命令,这些命令不起作用。例如,如果我使用
inst.write('SENS:CALC 9;:INP:ROT:STAT 1')我得到了:
(40, <StatusCode.success: 0>)设备不会设置该值。(相同的代码在Windows下运行良好。)
所以我不知道这是怎么回事。
样本代码:
import pyvisa
import numpy as np
#rm = pyvisa.ResourceManager('@py')
rm = pyvisa.ResourceManager()
rm.list_resources()
#ni-visa
inst = rm.open_resource('USB0::0x1313::0x8031::M00587150::INSTR')
#pyvisa-py
#inst = rm.open_resource('USB0::4883::32817::M00587150::0::INSTR')
print(inst.query('*IDN?'))
print(inst.write('SENS:CALC 9;:INP:ROT:STAT 1'))
print(inst.query('SENS:DATA:LAT?'))发布于 2021-03-25 20:26:06
好吧,我找到了一个解决方案。将python 3.7更新到最新版本(3.9.2)解决了这个问题。
https://stackoverflow.com/questions/66766764
复制相似问题