我遇到了使用Anritsu MG69377B微波发生器的问题。
进入远程模式并识别仪器没有问题,但任何其他返回值的命令都会超时,仪器似乎确实响应任何写入命令。我正在使用pyvisa与仪器进行通信。
>>>import visa
>>> x = visa.connect('GPIB::5') #Address the instrument
>>> x.ask('*IDN?') # Works Fine
>>>'ANRITSU,69377B,010918,2.35'
>>>
>>> x.ask('*STB?')
Traceback (most recent call last):
File "<pyshell#37>", line 1, in <module>
x.ask('*STB?')
File "C:\Python27\lib\site-packages\pyvisa\visa.py", line 502, in ask
return self.read()
File "C:\Python27\lib\site-packages\pyvisa\visa.py", line 433, in read
return self._strip_term_chars(self.read_raw())
File "C:\Python27\lib\site-packages\pyvisa\visa.py", line 407, in read_raw
chunk = vpp43.read(self.vi, self.chunk_size)
File "C:\Python27\lib\site-packages\pyvisa\vpp43.py", line 840, in read
visa_library().viRead(vi, buffer, count, byref(return_count))
File "C:\Python27\lib\site-packages\pyvisa\vpp43.py", line 398, in check_status
raise visa_exceptions.VisaIOError, status
VisaIOError: VI_ERROR_TMO: Timeout expired before operation completed.
* STB?是一个标准的IEEE命令,应该适用于任何符合标准的仪器(基本上都是)。我查看了手册,我似乎也发现其他代码的语法没有任何问题。当使用pyvisa远程连接时,仪器似乎不起作用。 (不确定这是一个pyvisa问题还是我的乐器的问题)。
提前感谢您的帮助。我在这里拉着吸管,但也许那里的一些巫师可以帮助我解决谁有这方面的经验。
答案 0 :(得分:2)
693xxB支持两种语言,称为Native和SCPI。在该文书中,SCPI语言是一种选择(选项19)。在带有选项19的693xxB中,语言是仪器设置。
Native模式只支持通用命令* IDN?。 SCPI模式支持更常见的命令,比如* STB?例如。
您的语法和VISA连接似乎很好。它位于仪器设置/支持端。